【问题标题】:Pass variables from a while to another while将变量从一个时间传递到另一个时间
【发布时间】:2016-02-19 15:00:55
【问题描述】:

我对这个表格有一点问题。 在 fprm 页面上,我的代码是:

         <form action="?act=process" method="post">
         <?php $sql = "SELECT * FROM schedule WHERE day = '$day' ORDER BY ID ASC";
         $hours = mysql_query($sql);
         while ($hour = mysql_fetch_array($hours)) { ?>     

         <input type="text" name="course" value="<?=$hour[course]?>">
         <input type="hidden" name="id" value="<?=$hour[ID]?>">

         <?php } ?>

         <button type="submit">Submit</button>

在流程页面上是这样的:

         while($id = each($_POST['id']) && $course = each($_POST['course'])) 
         { 
         //echo "ID $id AND course $course<br/>";
         } 

我需要做的就是在一段时间内传递所有变量以更新我的 sql 数据库中的每个变量。

我得到的错误是:警告:传递给 each() 的变量不是 /path_domain 中的数组或对象

我该如何解决这个问题?

【问题讨论】:

    标签: php sql foreach while-loop


    【解决方案1】:

    原因是您尝试将 id/course 数据用作数组,但您只传递了字符串。为了避免这种情况,只需在字段名称中添加[] 即可将字段形成为数组:

         <input type="text" name="course[]" value="<?=$hour[course]?>">
         <input type="hidden" name="id[]" value="<?=$hour[ID]?>">
    

    【讨论】:

    • 错误消失现在输出看起来像这个 ID 1 AND course Array ID 1 AND course Array ID 1 AND course Array
    • @Adrian 正如您在php.net/manual/en/function.each.php 看到的那样,每个都返回数组,而不是字符串/数字,这就是您在输出中得到Array 的原因。我建议将each 替换为foreach,如下所示: foreach ($_POST['id'] as $key => $id) { $course = $_POST['course'][$key]; echo "Id 是 $id AND course $course
      "; }
    【解决方案2】:

    通过在字段名称后添加 [] 括号。

    <form action="?act=process" method="post">
         <?php $sql = "SELECT * FROM schedule WHERE day = '$day' ORDER BY ID ASC";
         $hours = mysql_query($sql);
         while ($hour = mysql_fetch_array($hours)) { ?>     
    
         <input type="text" name="course[]" value="<?=$hour[course]?>">
         <input type="hidden" name="id[]" value="<?=$hour[ID]?>">
    
         <?php } ?>
    
         <button type="submit">Submit</button>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-14
      • 2018-11-04
      • 2013-02-08
      • 2015-10-23
      相关资源
      最近更新 更多