循环只插入最后一个值

我正在使用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?