Как обрабатывать несколько кнопок отправки, когда количество кнопок является переменным?

#php #html #forms #submit

#php #HTML #формы #Отправить

Вопрос:

То, что я пытался выполнить здесь, — это извлечь данные из базы данных и отобразить их в форме. Как назвать кнопки отправки, чтобы я мог идентифицировать их на странице действий?

 if(isset($_POST["sch"]))
      {
      $_SESSION['e']=$_POST["phon"];
      $result_set=mysql_query("select * from bill_info where      phone='".$_SESSION['e']."' and net_payable=0 order by bill_no");
      if($row=mysql_fetch_array($result_set))
      {      
      echo "<form name="shpen" method="post" action="vgbill2.php"> <table border="0">";
      do
      {
        echo "<tr><th>Bills</th><th>Action</th></tr>";
        echo "<tr><td>".$row[0]."</td><td><input type="submit" name="".$row[0]."" value="Generate"></td></tr>";
        } while($row=mysql_fetch_array($result_set));
        //echo mysql_errno($con) . ": " . mysql_error($con) . "rn";
      echo "</table></form>";  
      }
      else echo "rn"." No bills pending for given phone number"." rn";
      } 
  

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

1. Примечание: точка с запятой в while($row=mysql_fetch_array($result_set)); разорвет ваш цикл.

2. я думал, что do{}while(); является правильным синтаксисом. Вы уверены?

3. Хм … теперь, когда вы упомянули об этом, я могу ошибаться.

Ответ №1:

Используйте кнопку вместо ввода:

 echo '<button type="submit" name="bt_submit" value="'.$row[0].'">Generate</button>';
  

Таким образом, вы получаете прежнее имя $_POST['bt_submit'] .

Ответ №2:

Поскольку вы создаете динамическую форму и отправляете данные, вам не нужно следовать какому-либо специальному соглашению об именовании. Пожалуйста, используйте название кнопки отправки как «Сохранить» и задайте один скрытый файл как BillId, а на странице действий проверьте, установлен ли isset($_POST[‘Save’]) { // Выполнять действия на основе $ _POST[‘BillId’]} .