2015-11-20 2 views
0

В настоящее время я занимаюсь разработкой веб-сайта и логистической идея заключается в следующем:Отправить несколько форм с одной страницы на одной таблице

У нас есть адрес пикапа, и мы можем иметь несколько адресов доставки.

Это таблица мы используем:

id  | order_id  | user_id  | company  | address  | postal  | city  | order_number | license_plate | qty | unit | instructions | type | status 
------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
0  | 10000  | 1   | Company A | Street 1 | 00000  | City A | 123123123 | xx-xxx-x  | 1 | M3 | blabla  | P | 0 
1  | 10000  | 1   | Company A | Street 1 | 00000  | City B | 123123123 | xx-xxx-x  | 1 | M3 | blabla  | D | 0 
2  | 10000  | 1   | Company A | Street 1 | 00000  | City B | 123123123 | xx-xxx-x  | 1 | M3 | blabla  | D | 0 

Один пикап адрес (тип = Р) может иметь несколько адресов доставки.

На основании order_id показаны все адреса. Транспортеру необходимо заполнить поле order_number, qty и unit для каждого адреса.

Для выполнения формы мы используем следующий файл php. Но когда я заполняю поля в первой форме и нажимаю на save order_number, количество и единица заполняются во всех трех строках таблицы.

<?php 

include_once 'db.php'; 

/* code for update orders */ 
if(isset($_GET['edit'])) 
{ 
    $SQL = $MySQLiconn->query("SELECT * FROM orders WHERE order_id=".$_GET['edit']); 
    $getROW = $SQL->fetch_array(); 
} 

if(isset($_POST['update'])) 
{ 
    $SQL = $MySQLiconn->query("UPDATE orders SET order_number='".$_POST['order_number']."', 
      qty='".$_POST['qty']."', 
      unit='".$_POST['unit']."', 
      status='".$_POST['status']."' 
      WHERE order_id=".$_GET['edit']); 
} 
/* code for data update */ 

?> 

<?php include_once 'header.php'; ?> 

<div class="container"> 
    <div id="pickupform"> 
     <form method="post" class="form-horizontal"> 
      <fieldset> 
       <?php 
       $res = $MySQLiconn->query("SELECT * FROM orders WHERE type='P' AND order_id=".$_GET['edit']); 
       while($row=$res->fetch_array()) 
       { 
        ?> 
        <!-- Delivery Address--> 
        <div class="formcontainer col-push-md-4"> 
        <div class="form-group"> 
         <label class="col-md-4 control-label">Afleveradres</label> 
         <div class="col-md-8"> 
         <p><?php echo $row['company']; ?><br/> 
         <?php echo $row['address']; ?><br/> 
         <?php echo $row['postal']; ?>&nbsp;<?php echo $row['city']; ?></p> 
         </div> 
        </div> 
        <!-- Ordernumber --> 
        <div class="form-group"> 
         <label class="col-md-4 control-label" for="textinput">Ordernummer/Lieferschein</label> 
         <div class="col-md-8"> 
         <input id="order_number" name="order_number" type="text" placeholder="<?php echo $row['order_number']; ?>" class="form-control input-md" value="<?php if(isset($_GET['edit'])) echo $getROW['order_number']; ?>"> 
         </div> 
        </div> 
        <!-- Quantity/Unit --> 
        <div class="form-group"> 
         <label class="col-md-4 control-label" for="textinput">Hoeveelheid/Quantity</label> 
         <div class="col-md-8"> 
         <div class="input-group"> 
          <input id="qty" name="qty" type="text" placeholder="Bijv. 100" class="form-control input-md" value="<?php if(isset($_GET['edit'])) echo $getROW['qty']; ?>" /> 
          <span class="input-group-btn" style="width:0px;"></span> 
          <input id="unit" name="unit" type="text" placeholder="Bijv. M3" class="form-control input-md" value="<?php if(isset($_GET['edit'])) echo $getROW['unit']; ?>"value="test2" style="margin-left:-1px" /> 
         </div> 
         </div> 
        </div> 
        <!-- Send Consignment --> 
        <input type="hidden" name="status" value="<?php if(isset($_GET['edit']))?>1"/> 
        <div class="form-group"> 
         <label class="col-md-4 control-label" for="update"></label> 
         <div class="col-md-8"> 
         <?php if(isset($_GET['edit'])) { ?> 
          <button type="submit" class="btn btn-primary" name="update">Opslaan</button> 
         <?php } ?> 
         </div> 
        </div> 
        </div> 
       <?php } ?> 
      </fieldset> 
     </form> 
    </div> 
</div> 

<div class="container"> 
    <div id="deliveryform"> 
     <form method="post" class="form-horizontal"> 
      <fieldset> 
       <?php 
       $res = $MySQLiconn->query("SELECT * FROM orders WHERE type='D' AND order_id=".$_GET['edit']); 
       while($row=$res->fetch_array()) 
       { 
        ?> 

        <div class="formcontainer col-push-md-4"> 
        <div class="form-group"> 
         <label class="col-md-4 control-label">Afleveradres</label> 
         <div class="col-md-8"> 
         <p><?php echo $row['company']; ?><br/> 
         <?php echo $row['address']; ?><br/> 
         <?php echo $row['postal']; ?>&nbsp;<?php echo $row['city']; ?></p> 
         </div> 
        </div> 

        <div class="form-group"> 
         <label class="col-md-4 control-label" for="textinput">Ordernummer/Lieferschein</label> 
         <div class="col-md-8"> 
         <input id="order_number" name="order_number" type="text" placeholder="<?php echo $row['order_number']; ?>" class="form-control input-md" value="<?php if(isset($_GET['edit'])) echo $getROW['order_number']; ?>"> 
         </div> 
        </div> 

        <div class="form-group"> 
         <label class="col-md-4 control-label" for="textinput">Hoeveelheid/Quantity</label> 
         <div class="col-md-8"> 
         <div class="input-group"> 
          <input id="qty" name="qty" type="text" placeholder="Bijv. 100" class="form-control input-md" value="<?php if(isset($_GET['edit'])) echo $getROW['qty']; ?>" /> 
          <span class="input-group-btn" style="width:0px;"></span> 
          <input id="unit" name="unit" type="text" placeholder="Bijv. M3" class="form-control input-md" value="<?php if(isset($_GET['edit'])) echo $getROW['unit']; ?>"value="test2" style="margin-left:-1px" /> 
         </div> 
         </div> 
        </div> 

        <input type="hidden" name="status" value="1"/> 
        <div class="form-group"> 
         <label class="col-md-4 control-label" for="update"></label> 
         <div class="col-md-8"> 
         <?php if(isset($_GET['edit'])) { ?> 
          <button type="submit" class="btn btn-primary" name="update">Opslaan</button> 
         <?php } ?> 
         </div> 
        </div> 
        </div> 
       <?php } ?> 
      </fieldset> 
     </form> 
    </div> 
</div> 

<?php include_once 'footer.php'; ?> 

Я не тот familiair с PHP, могли бы вы, ребята, помочь мне на этом? Поэтому для каждого адреса мне нужно отправить настройки.

ответ

0

Внутри вашей первой формы, добавить скрытое поле:

<input type='hidden' name='type' value='P' /> 

Это будет представлять значение 'P' в $ _POST [ 'типа'].

Затем измените запрос на обновление, чтобы использовать это значение в предложении WHERE: (. Не стоит забывать одинарные кавычки - «P» представляет собой строку)

....WHERE order_id=".$_GET['edit'])." AND type='".$_POST['type']."'; 

Это должно затем обновить только согласование строк.

Затем сделайте то же самое для второй формы, используя значение «D».

+0

Спасибо, но вторая форма также может иметь несколько адресов, и транспортеры должны заполнить значения, когда он достигнет адреса доставки a, и когда он прибывает на адрес доставки 2. и т. Д. Иногда один пикап может иметь 5 разных адреса доставки. – Wouter

+0

В приведенном выше решении будет обновляться каждая строка, соответствующая order_id, и либо «P», либо «D» в зависимости от представленной формы. – MaggsWeb

+0

Да, я понимаю. Но, если у меня есть следующая ситуация: 1 форму получения и 3 формы доставки на одной странице – Wouter

Смежные вопросы