我正在使用datatables jquery作为表插件来显示mysql的数据列表。 一切都很好,脚本运行良好。但是当我尝试从每行提交数据表单时,页面不会加载任何内容。
这是我的源页面。
<div id="product-grid" class="col-lg-6">
<div class="txt-heading"><h3> Services </h3></div>
<table class="table table-striped table-bordered table-hover " id="dataTables-example">
<thead>
<tr>
<th><strong>Name</strong></th>
<th><strong>Price</strong></th>
<th name="kategori"><strong>Kategori</strong></th>
<th><strong>Quantity</strong></th>
<th><strong>Action</strong></th>
</tr>
</thead>
<?php
$product_array = runQuery("SELECT * FROM menu ORDER BY id ASC");
if (!empty($product_array)) {
foreach($product_array as $key=>$value){
?>
<form class="form-group" method="post" action="?action=add&code=<?php echo $product_array[$key]["code"]; ?>">
<tbody>
<tr>
<td><strong><?php echo $product_array[$key]["name"]; ?></strong></td>
<td class="product-price"><?php echo $format->angka($product_array[$key]["price"]); ?></td>
<td> <?php echo $product_array[$key]["kategori"]; ?> </td>
<td> <input type="text" name="quantity" value="1" size="2" /> </td>
<td>
<input type="submit" value="Submit" class="btn btn-primary" />
</td>
</tr>
</form>
<?php }
}?>
</tbody>
</table>
</div>
这些代码我从admin.php加载到index.php页面..
<link href="<?php echo ASSETS.'bootstrap/dataTables/dataTables.bootstrap.css';?>" rel="stylesheet">
<script src="<?php echo ASSETS.'bootstrap/js/bootstrap.min.js';?>"></script>
<script src="<?php echo ASSETS.'bootstrap/dataTables/jquery.dataTables.js';?>"></script>
<script src="<?php echo ASSETS.'bootstrap/dataTables/dataTables.bootstrap.js';?>"></script>
我想要的是,当用户点击提交时,表单会发布到action.php来处理脚本。
三江源..
答案 0 :(得分:1)
表格不允许是表格,tbody或tr的子元素。
您可以在表单中包含整个表。您可以在表格单元格中放置一个表单。您不能在表单中包含表格的一部分。
在整个表格周围使用一个表格。然后使用单击的提交按钮确定要处理的行(快速)或处理每一行(允许批量更新)。
一切都很好。把你的<form>
&amp; </form
&GT;在桌子外面。
<table></table>
应位于<form></form>
例如:(正确方式)
<form method="POST">
<table id="mytable">
<tr>
<td>
<input name="s1" type="text" />
</td>
<td>
<input name="s2" type="text" />
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="insert" />
</td>
</tr>
</table>
</form>
而且,这是错误的方法。
<table id="mytable">
<form method="POST">
<tr>
<td>
<input name="s1" type="text" />
</td>
<td>
<input name="s2" type="text" />
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="insert" />
</td>
</tr>
</form>
</table>
有关详情,请查看Can't put PHP form in a table&amp; Form doesn't accept all inputs rows in my form
自从OP问起这样做的方法。我的意见是,使用<table></table>
仅显示数据。因为您无法在<form></form>
内使用<table></table>
。创建一个列操作,您将值传递给具有该行ID的其他页面。并且,在该页面(我写的其他页面)中,显示该产品的数据(如果需要),包括要提交的Quantity
。这只是一个建议。希望你能理解。
<div id="product-grid" class="col-lg-6">
<div class="txt-heading"><h3> Services </h3></div>
<table class="table table-striped table-bordered table-hover " id="dataTables-example">
<thead>
<tr>
<th><strong>Name</strong></th>
<th><strong>Price</strong></th>
<th name="kategori"><strong>Kategori</strong></th>
<th><strong>Action</strong></th>
</tr>
</thead>
<tbody>
<?php
$product_array = runQuery("SELECT * FROM menu ORDER BY id ASC");
if (!empty($product_array)) {
foreach($product_array as $key=>$value) {
?>
<tr>
<td><strong><?php echo $product_array[$key]["name"]; ?></strong></td>
<td class="product-price"><?php echo $format->angka($product_array[$key]["price"]); ?></td>
<td><?php echo $product_array[$key]["kategori"]; ?> </td>
<td>
<a href="Edit-Somepage.php?id=<?php echo $product_array[$key]["id"]; ?>">Edit</a>
</td>
</tr>
<?php }
}?>
</tbody>
</table>
</div>
</div>
修改-Somepage.php 强>
<?
$id=$_GET['id'];
$product_array = runQuery("SELECT * FROM menu WHERE id='$id'");
foreach($product_array as $key=>$value) {
$product_name=$product_array[$key]["name"];
$product_price=$format->angka($product_array[$key]["price"]);
}
?>
<form class="form-group" method="post" action="submit-SomePage.php">
<?echo $product_name;?><br>
<?echo $product_price;?><br>
<input type='hidden' value="<?echo $id;?>" name='ProductId'>
<input type="text" name="quantity" value="1" size="2" /> <br>
<input type="submit" value="Submit" class="btn btn-primary" />
</form>
提交-SomePage.php 强>
<?
$product_id=$_POST['ProductId'];
using this $product_id save/update/submit product.
//Update Query.
?>
答案 1 :(得分:0)
try this code
<form action="" method ="POST">
<table border="1">
<tr>
<td>
<input type="text" name="usrname" />
</td>
</tr>
<tr>
<td>
<input type="text" name="email" />
</td>
</tr>
<tr>
<td>
<input type="password" name="password" />
</td>
</tr>
<tr>
<td colspan="3">
<input type="submit" name="submit_btn" value="login" >
</td>
</tr>
</table>
</form>
答案 2 :(得分:0)
获取@nana答案的帮助,你可以这样做
表格是无效的子项,但在
下有效<tr>
<td> some field
<td> some other field
<td> **<form method="post">**somefield, some hidden field**</form>**
</td>
这样你就拥有了有效的表单元素。您可以包含所需的隐藏元素,因此可以从jQuery DataTable中提交表单。