数据表Jquery无法从表中提交POST

时间:2015-12-02 08:18:00

标签: php jquery datatables

我正在使用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来处理脚本。

三江源..

3 个答案:

答案 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中提交表单。