2014-01-25 6 views
0

Эй, я новичок в PHP, так что помилуй меня!Почему мой вход foreach не установлен?

Я пытаюсь выполнить эхо $ 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 в этот скрипт

Если я прав, вы должны увидеть слово «unset» на выходе.

Вы можете установить $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

Это не определено, потому что вы не POSTing (получение формы) поле с именем qty

2

Вы пытаетесь использовать $qty, когда он не установлен. Это происходит, когда $_POST['qty'] пуст. Что вам нужно сделать, это установить значение по умолчанию для него в этих случаях:

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

Или использовать тройной оператор, чтобы сделать это один вкладыш:

$qty = (isset($_POST['qty'])) ? $_POST['qty'] : 0; 
Смежные вопросы