2013-08-10 3 views
0

Я пытаюсь создать страницу заказа на php. Я создал форму, которая хранит данные в базе данных. Номер формы основан на пользователе и создается динамически.несколько форм, обработанных одним скриптом php

<?php 
if(isset($_POST['submit_num'])) 
{ 
    $number=$_POST['sky']; 

    for($i=0;$i<$number;$i++) 
    { 
      $item = $_SESSION['item']; 

      echo $item; 
      $rec_query = "SELECT * FROM ylika"; 
      $rec_result= mysql_query($rec_query) or die("my eroors"); 

      echo '<form action="user_order_form.php" method="POST">'; 
      echo '<html>'; 
      while($row_rec = mysql_fetch_array($rec_result)) 
      { 
       echo '<input type="checkbox" name="yliko[]" value='.$row_rec['onoma'].'> '.$row_rec['onoma'].''; 
       echo '<br>'; 
      } 
      echo '<br>'; 
      echo '<input type="submit" name="submit" value="ORDER">'; 
      echo '</form>'; 

    } 

} 
?> 

Поэтому у меня есть много форм и 1 скрипт для их обработки. Если я отправлю 1 форму, она применит данные к базе данных, но другие формы исчезнут. Это второй обработчик php.

<?php 
if (isset($_POST['submit'])) 
{ 
    $max_id = "SELECT MAX(id_order) FROM id_of_orders"; 
    $x=mysql_query($max_id) or die("my eroors"); 
    $id= mysql_fetch_array($x); 
    $xyz = $id['MAX(id_order)']; 

    $item = $_SESSION['item']; 
    $temp = $_POST['yliko']; 
    $temp2 = implode(",", $temp); 
    $inserts = ("INSERT INTO orders (order_id,product,ulika) VALUES ('$xyz' , '$item','$temp2')"); 
    $inc_prod=("UPDATE proion SET Counter = Counter + 1 WHERE proion.onomasia='$item'"); 
    mysql_query($inserts) or die(mysql_error()); 
    mysql_query($inc_prod) or die(mysql_error()); 
} 
?> 

Я хочу представить все формы. Должен ли я попытаться создать одну кнопку отправки для всех форм или есть способ обрабатывать их все отдельно?

+0

Является ли это 'echo ''; ', должно быть, там? Кажется странным местом (то есть перед большим количеством кода ...) – James

+0

nop, я забыл его, плохой. до сих пор нет ошибки. –

ответ

0

У вас может быть много форм отправки, но просто укажите один большой <form> со всеми из них, то вы не потеряете никакой информации.

<?php 
if(isset($_POST['submit_num'])) 
{ 
    $number=$_POST['sky']; 

    echo '<form action="user_order_form.php" method="POST">'; 
    for($i=0;$i<$number;$i++) 
    { 
      $item = $_SESSION['item']; 

      echo $item; 
      $rec_query = "SELECT * FROM ylika"; 
      $rec_result= mysql_query($rec_query) or die("my eroors"); 

      echo '<html>'; 
      while($row_rec = mysql_fetch_array($rec_result)) 
      { 
       echo '<input type="checkbox" name="yliko[]" value='.$row_rec['onoma'].'> '.$row_rec['onoma'].''; 
       echo '<br>'; 
      } 
      echo '<br>'; 
      echo '<input type="submit" name="submit" value="ORDER">'; 

    } 
    echo '</form>'; 

} 
?> 

теперь вы можете также добавить ~ $ я ~ идентификатор, имена входных, так что вы можете легко отличить, что есть что.

+0

еще после того, как я отправлю одну форму, она начнет снова –

+0

Что вы подразумеваете под «снова в начале»? Должно быть, должно быть хорошо. Форма вызывается перед циклом, затем происходит цикл, затем форма закрывается. Отправка формы должна предоставить все предоставленное. – James

+0

Я пробовал это, и после того, как я создал 2-3 формы, я нажал submit for 1, он запустил скрипт и снова вернулся в меню. я хочу отправить все формы –