循环只插入最后一个值
我正在使用PHP来获取文本框中的所有值,在循环内获取值。
在一个循环内我也有插入语句和计数。
流程是:我将从下拉列表中选择数值,当我从下拉列表中选择数字时,将创建相应数量的文本框。
例如: - 我从下拉列表中选择了数字3。 所以它会创建3个文本框。
现在我将数据输入到这3个文本框中,然后单击提交。 当我点击提交只有最后一个文本框的值被插入到数据库中。
即当我选择3并输入数据到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">';
}
这是动态生成文本框
问题是你正在创建一个与以前创建的名称相同的新输入,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());
}
?>
我havnt测试了这个代码,所以你可能需要修补一下,使其工作,但概念是在那里
尝试
<?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());
}
?>
您正在使用$ _POST [“Fname”]插入。 因此,你应该在for语句中使用count($ _ POST [“Fname”])
链接地址: http://www.djcxy.com/p/58577.html上一篇: Loop inserting only last values
下一篇: Using PHP, how do I echo a different output based on the total number in a form?