2017-02-21 17 views
0

ребята. Я схожу с моим приложением, пока не добрался до такого типа формы, как описано ниже. У меня есть 2 пункта в этой таблице, а идентификаторы - «1» и «2». Хотя, если я нажимаю «Отправить» в элементе «1» ID, он печатает меня «2» каждый раз. Кто-нибудь знает, что может быть проблемой? Спасибо.Ошибка в форме, работающей с PHP, MySQL и HTML

<form method="POST"> 
    <?php 
    $query = "SELECT * FROM table"; 
    while($row = $query->fetch_array()) 
    { 
     $id = $row['id']; 
    ?> 

    <input type="hidden" name="id" value="<?php echo $id; ?>" > 
    <input type="submit" name="submit"> 

    <?php } ?> 

</form> 

<?php 
if(isset($_POST['submit'])) 
{ 
    echo $_POST['id']; 
} 
?> 

ответ

0

Вы выводите два элемента в одну и ту же форму с тем же именем. Когда вы нажимаете кнопку Submit, она собирает все поля в форме на основе атрибута и отправляет их туда, куда отправляется форма.

Если вы хотите, чтобы кнопка, которая отправляет каждый идентификатор отдельной кнопкой, вы хотите попробовать создать новую форму для каждого идентификатора. Существуют и другие способы сделать это, но на основе вашего текущего кода попробуйте что-то вроде этого:

<?php 
    $query = "SELECT * FROM table"; 
    while($row = $query->fetch_array()) 
    { 
     $id = $row['id']; 
    ?> 
    <form method="POST"> 
     <input type="hidden" name="id" value="<?php echo $id; ?>" > 
     <input type="submit" name="submit"> 
    </form> 
    <?php } ?> 

<?php 
if(isset($_POST['submit'])) 
{ 
    echo $_POST['id']; 
} 
?>