我正在使用php从textbox获取所有的值,在一个循环中,我将得到这些值。
在循环中,我还有insert语句和count。
流程是:从下拉列表中选择值,当我从下拉列表中选择数字时,将创建相应的文本框数。
我从下拉列表中选择了数字3。因此,它将创建3个文本框。
现在,我将在这3个文本框中输入数据,然后单击submit。当我单击submit时,最后一个文本框的值将被插入到数据库中。
也就是说,当我选择3并将数据输入到3文本框时,它只插入3次文本框值,而不是插入第1、第2和第3值。
我该怎么解决呢..?
这是我用过的代码。
php:
<?php
mysql_connect("localhost", "tiger", "tiger") or die(mysql_error());
mysql_select_db("theaterdb") or die(mysql_error());
for ($i=0; $i < $_POST["range"] ; $i++)
{
$query = mysql_query("INSERT INTO movie (movie_name,language) VALUES('$_POST[Fname]','$_POST[language]') ") or die(mysql_error());
}
?>范围是我在下拉列表中选择的值。
javascript代码:
for(i = 0; i < param; i += 1) {
target.innerHTML +='</br>';
target.innerHTML +='New Movie '+i+' ';
target.innerHTML += '<input type="text" name="Fname">';
}这是动态生成文本框。
发布于 2013-08-30 09:58:19
问题是,您正在创建与先前创建的输入名称相同的新输入,php的$_POST[]将在输入名称上进行处理--您需要创建具有独特名称的输入,比如
for(i = 0; i < param; i += 1) {
target.innerHTML +='</br>';
target.innerHTML +='New Movie '+i+' ';
target.innerHTML += '<input type="text" name="Fname_' + i + '">';
}
<?php
mysql_connect("localhost", "tiger", "tiger") or die(mysql_error());
mysql_select_db("theaterdb") or die(mysql_error());
for ($i=0; $i < $_POST["range"] ; $i++)
{
$query = mysql_query("INSERT INTO movie (movie_name,language) VALUES('" . $_POST['Fname_' . $i] . "','" . $_POST['language'] . "') ") or die(mysql_error());
}
?>然而,这将只用于添加一次输入,或者您将再次创建具有相同名称的输入,为了达到此目的,我将重新将总计数存储在一个名为count <input type="hidden" value="0" name="count" />的隐藏输入中--基于该计数的名称。
var count = $('input[name=count]');
for(i = 0+count; i < param+count; i += 1) {
target.innerHTML +='</br>';
target.innerHTML +='New Movie '+i+' ';
target.innerHTML += '<input type="text" name="Fname">';
}
<?php
mysql_connect("localhost", "tiger", "tiger") or die(mysql_error());
mysql_select_db("theaterdb") or die(mysql_error());
for ($i=0; $i < $_POST["range"] ; $i++)
{
$query = mysql_query("INSERT INTO movie (movie_name,language) VALUES('" . $_POST['Fname_' . $i] . "','" . $_POST['language'] . "') ") or die(mysql_error());
}
?>我还没有测试过这段代码,所以您可能需要稍微修改一下才能使它工作,但概念是存在的。
发布于 2013-08-30 09:50:17
试一试
<?php
mysql_connect("localhost", "tiger", "tiger") or die(mysql_error());
mysql_select_db("theaterdb") or die(mysql_error());
for ($i=0; $i <= count($_POST["Fname"]); $i++)
{
$query = mysql_query("INSERT INTO movie (movie_name,language) VALUES('$_POST[Fname][$i]','$_POST[language][$i]') ") or die(mysql_error());
}
?>发布于 2013-08-30 09:52:22
插入时使用$_POST"Fname“。因此,您应该在for语句中使用count($_POST"Fname")
https://stackoverflow.com/questions/18529878
复制相似问题