Почему не видит переменную $id?
Я прошелся циклом по таблице "Food" и вывел её значения, одно из значений это $id. При отправке данной формы в другой файл он не видит значение переменной $id в $_POST[], но если задать значение вручную он работает.
<form action="Dish.php" method="post">
<?php
$result = mysqli_query($conn3, "SELECT * FROM `Food`");
?>
<?php foreach($result as $row):?>
<?php $id = $row['id'];?> //эту переменную не видит в "Dish.php"
<div class="plate" >
<img class="img" src="<?php echo $row['img'];?>" alt="">
<h3 class="title" name="name"><?php echo $row['dish_name'];?></h3>
<textarea type="text" class="discript" readonly><?php echo $row['ingr'];?></textarea>
<input type="text" class="price" value="<?php echo $row['cost'] . "p"; ?>" readonly>
<input type="submit" name="<?php echo $id;?>" value="Заказать" class="button_for_buy">
</div>
<?php endforeach;?>
</form>
Идет форма в которой не видит переменную:
<?php
if(isset($_POST[$id])){ // здесь если задать вручную всё работает, естественно в поле id_ingr ='' тоже меняю.
$sql = "SELECT * FROM `ingredient` WHERE id_ingr = '$id'";
if($result = $conn3->query($sql)){
$count = 0;
foreach($result as $row ){
$count++;
$ingredient = $row['ingredient'];
?>
<input type="checkbox" class="checkbox" name ="checkboxx[]" value="<?php echo($ingredient); ?>" id="checkbox<?php echo($count); ?>" checked/>
<label class="label" for="checkbox<?php echo($count); ?>"><?php echo($ingredient); ?></label>
<?php
}
}
}?>
Источник: Stack Overflow на русском