2015-11-20 97 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 

一个拾地址(类型= P)可以具有多个递送地址。

根据order_id显示所有地址。运输商需要填写每个地址的order_number,数量和单位字段。

我们使用下面的php文件来执行表单。但是,当我填写第一个表格中的字段并单击保存order_number时,所有3个表格行中都会填写数量和单位。

<?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'; ?> 

我不是那个用PHP的familiair,你们能帮我解决这个问题吗?所以每个地址我需要提交设置。

回答

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

相关问题