2014-01-25 18 views
0

嘿,我是PHP的新手,所以對我有憐憫!爲什麼我的foreach輸入沒有設置?

我想要echo $ qty,但它是說變量是一個未定義的變量。

如果你看到我做錯了什麼,隨時告訴我!

在此先感謝!

action.php的:

  foreach ($rows as $row){ 
       $food = $row['food']; 
       $price = $row['price']; 
       if(isset($_POST['qty'])){ 
       $qty = $_POST['qty']; 
       echo 'set'; 
       }else{ 
        echo 'unset'; 

       } 
       echo "<tr> 
      <td>$food</td> 
      <td>$qty</td> 
      <td>$price</td> 
     </tr>";  
     } 

order.php:

  foreach ($rows as $row) { 
      $food = $row["food"]; 
      $price = $row["price"]; 
      $picture = $row["picture"]; 
      $description = $row["description"]; 
      $id = $row['id']; 
      echo "<tr> 
        <td><img src='$picture' width='120px' /></td> 
        <td>$food</td> 
        <td>$$price</td> 
        <td><input type='number' min='0' max='10' placeholder='#' name='qty' maxlength='1'></td> 
       </tr>"; 
     } 

回答

1

幾乎可以肯定,那麼if(isset($_POST['qty'])){沒有通過,所以變量沒有給出一個值。確保您將POST數據傳遞給此腳本

如果我是正確的,您應該在輸出中看到「未設置」一詞。

您可以預先設置$qty,這樣不管是什麼,它都會有一個值,或給它一個不同的值,如果您if說法是錯誤的:

//set a default value earlier 
$qty = 'This is the default value!'; 

//or in the if statement 
if(isset($_POST['qty'])){ 
    $qty = $_POST['qty']; 
    echo 'set'; 
} else { 
    $qty = 'qty wasn't given a value!'; 
    echo 'unset'; 
} 
1

這不是定義的,因爲你不發佈(表單提交)字段qty

2

當您未設置時,您正在嘗試使用$qty。這發生在$_POST['qty']爲空時。你需要做什麼在這些情況下被設置爲默認值吧:

if(isset($_POST['qty'])){ 
    $qty = $_POST['qty']; 
}else{ 
    $qty = 0; 
} 

或者使用三元運算,使這一個班輪:

$qty = (isset($_POST['qty'])) ? $_POST['qty'] : 0; 
相關問題