【问题标题】:Looping through input form problem循环输入表单问题
【发布时间】:2010-10-16 19:29:37
【问题描述】:

我在遍历表单输入文本字段时遇到问题。我正在尝试遍历标记为“数字”的多个文本字段,它只提交最后一个数字字段而不是所有“数字”字段。谁能看到我在这里做错了什么??

    for ($i = 0; $i < count($_POST['number']); $i++) {
       $sql='INSERT INTO orders (custNum,contractNum,equipId,prodNum)
              VALUES ('
          . "'" . mysql_real_escape_string($_SESSION['custNum']) . "', "
       . "'" . mysql_real_escape_string($_POST['contractNum']) . "', "
        . "'" . mysql_real_escape_string($_POST['equipId']) . "', "
          . "'" . mysql_real_escape_string($_POST['number'][$i]) . "'"


          . ')';
    }


<?php
$i=0;
while ($i < $num) {

$p1=mysql_result($paper_result,$i,"tp");
$p2=mysql_result($paper_result,$i,"prodNum");
$p3=mysql_result($paper_result,$i,"paperDesc");

?>

  <tr>
    <td><select name="quant[]">
     <option value="0">None</option>
      <option value="2">2</option>
      <option value="2">4</option>
      <option value="2">6</option>
      <option value="2">8</option>
      <option value="2">10</option>
      <option value="2">12</option>
      <option value="2">14</option>
      <option value="2">16</option>
      <option value="2">18</option>
      <option value="2">20</option>
    </select></td>
    <td><?php echo $p1; ?></td>
    <td><input type="text" name="number[]" value="<?php echo addslashes($p2); ?>">    </td>
    <td><?php echo $p3; ?></td>
  </tr>
  <?php
$i++;
}
?>

【问题讨论】:

  • 您遗漏了实际将数据插入数据库的代码部分,没有看到完整的代码真的很难说问题出在哪里。
  • 我想查看print_r($_POST['number']); 的输出,您是否 100% 确定您收到了一个数组? (只是为了验证)

标签: php mysql loops


【解决方案1】:

您永远不会调用 mysql_query() 来实际执行插入。您需要在 for 循环结束时(循环内)调用它。

【讨论】:

  • 哇,我花了 5 个多小时在这上面,遗漏了一些如此简单的东西。非常感谢tandu!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 2013-05-15
  • 1970-01-01
相关资源
最近更新 更多