Кнопка HTML не выбирает правильное значение формы

#php #html

Вопрос:

Кнопка HTML не выбирает правильное значение формы. Следующий код выбирает данные и правильно отображает их в таблице html: fname, lname , customer_id, а в последнем столбце таблицы отображается кнопка с надписью «Дополнительная информация». Первая часть кода работает нормально.

 <table>
   <thead>
      <tr>
         <th>First Name</th> <th>Last Name</th> <th>Customer ID</th><th>Info</th>
      </tr>
   </thead>
   <tbody>
     <tr>
         <?php 
         $sql = "select fname, lname,customer_id from customer_address ";
         $result = mysqli_query($conn,$sql);

         while($row = mysqli_fetch_assoc($result)){
            $fname = $row['fname'];
            $lname = $row['lname'];
            $customer_id = $row['customer_id'];
            
         echo" <tr>";
          echo"<td>$fname</td>";
          echo"<td>$lname</td>";
          echo"<td>$customer_id</td>";
          echo"<td><input type='hidden' name='customer_id' value='$customer_id'>";
          echo "<button type='submit' name='submit'>More Info</button></td>" ; 
          }
          echo" </tr>";
                ?>
   </tbody>
</table>
</form>
 

Во второй части кода я хочу захватить идентификатор пользователя при нажатии кнопки и отобразить его под таблицей(я собираюсь использовать переменную в последующем запросе для отображения дополнительной информации позже). Кнопка выбирает один и тот же идентификатор пользователя независимо от того, какая кнопка нажата, и это всегда последняя запись в таблице. Я был бы признателен за любую помощь в исправлении моей ошибки.

 <?php
$ccf=" ";
if(isset($_POST['submit'])){

  $ccf = $_POST['customer_id'];
}
echo "Customer Id selected is:$ccf";
?>
 

Комментарии:

1. Они, кажется, все в одной форме, поэтому в них есть несколько элементов name='customer_id' . Поместите каждую строку в свою собственную форму

2. @ brombeer отлично работает, спасибо, пожалуйста, опубликуйте в качестве ответа, чтобы я мог принять. Спасибо

3. Готово, рад, что это работает 😉

Ответ №1:

Все ваши элементы находятся внутри одной формы, поэтому в ней есть несколько элементов name='customer_id' . Поместите каждую строку в свою отдельную <form></form> :

 <table>
   <thead>
      <tr>
         <th>First Name</th> <th>Last Name</th> <th>Customer ID</th><th>Info</th>
      </tr>
   </thead>
   <tbody>
         <?php 
         $sql = "select fname, lname,customer_id from customer_address";
         $result = mysqli_query($conn,$sql);

         while($row = mysqli_fetch_assoc($result)){
            $fname = $row['fname'];
            $lname = $row['lname'];
            $customer_id = $row['customer_id'];
            
            echo" <tr>";
            echo "<td>$fname</td>";
            echo "<td>$lname</td>";
            echo "<td>$customer_id</td>";
            echo "<td>";
            echo "<form action='' method='post'>";
            echo "<input type='hidden' name='customer_id' value='$customer_id'>";
            echo "<button type='submit' name='submit'>More Info</button>";
            echo "</form>";
            echo "</td>"; 
            echo" </tr>";
          }
          ?>
   </tbody>
</table>