2015-11-18 27 views
1

我對此表單有點問題。 在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數據庫。

我得到的錯誤是:警告:變量傳遞給每個()不是一個數組或對象在/ path_domain

我怎樣才能解決這個問題?

回答

3

原因是你嘗試使用id/course數據作爲數組,但你只傳遞字符串。爲了避免它,只是讓你表單域陣列加入[]到田間地頭名稱:

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

的錯誤,現在由輸出消失看起來是這樣的ID爲1,當然陣列 ID 1,當然陣列 ID 1,當然陣列 – Adrian

+0

@Adrian正如你可以看到http://php.net/manual /en/function.each.php,每個返回數組,而不是一個字符串/數字,這就是爲什麼你在輸出中得到'Array'。我建議用'foreach'替換'each',如下所示: foreach($ _POST ['id'] as $ key => $ id){course = $ _POST ['course'] [$ key] ; 回聲「Id是$ id AND course $ course
」; } – user2655603

+0

非常感謝。它現在工作正常! – Adrian

0

通過字段的名稱後加上括號[]。

<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> 
相關問題