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']; ?> <?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']; ?> <?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,你们能帮我解决这个问题吗?所以每个地址我需要提交设置。
谢谢,但第二种形式也可以有多个地址,当他到达收货地址a并且他到达收货地址2等时,运输公司需要填写值。有时一个收货可能有5个不同的地址送货地址。 – Wouter
上面的解决方案会根据提交的表单更新每一行匹配order_id和'P'或'D'的行。 – MaggsWeb
是的,我明白了。但是,如果我遇到以下情况,请在下列情况下查看:1张表单和3张交付表单在一个页面上 – Wouter