【问题标题】:How to submit multiple table rows inside a form [closed]如何在表单中提交多个表格行[关闭]
【发布时间】:2014-01-27 09:51:00
【问题描述】:

我知道这行不通。但这就是我想要做的。我希望多个表行数据不是一次全部提交给表单操作,而是在单击各个行时提交。不知道如何使它工作!

<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">

    <?php echo form_open_multipart('admin/manageAdv',array('id'=>'manageAdv'))?>
        <table class="table table-striped table-bordered tablesorter advTable">
        <thead>
            <tr>
                <th>S.No</th>
                <th>Title</th>
                <th>File Name</th>
                <th>New Image</th>
                <th>Alternate Text</th>
                <th>Link</th>
                <th>Action</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($content as $row):?>
            <tr>
                <td><?php echo $counter = $counter+1;?></td>
                <td><input type="text" class="form-control" value="<?php echo $row['title']?>" name="title"></td>
                <td><?php echo $row['file_name']?></td>
                <td><input type="file" class="form-control" name="upload"></td>
                <td><input type="text" class="form-control" value="<?php echo $row['alt']?>" name="alt"></td>
                <td><input type="text" class="form-control" value="<?php echo $row['link']?>" name="link"></td>
                <input type="hidden" value="<?php echo $row['id']?>" name="id">
                <input type="hidden" value="<?php echo $row['file_path']?>" name="path">
                <td>
                <button type="submit" class="btn btn-default" name="submit" value="update">Update</button>
                <button type="submit" class="btn btn-default" name="submit" value="delete">Delete</button>
                </td>
            </tr>
            <?php endforeach;?>
        </tbody>
        </table>
    <?php form_close()?>
</div>

【问题讨论】:

  • 看到你标记它 jquery 和 ajaxform,你知道这需要 javascript,所以你要代码吗?
  • 是的。如果你能分享一些代码sn-p,那就太好了。
  • 您可以使用简单的 javascript 和 ajax 来使其正常工作。在单击行(哪些行)时更详细地说明您想要什么以及您想要发生什么。这并不难,很容易上手
  • @Rattansingh 好的。我希望以表格的形式显示详细信息。因此,当用户单击更新按钮时,应针对特定行传递表单值。如果可以做到这一点,那么我可以只用一个 id 来处理删除。

标签: php jquery forms codeigniter ajaxform


【解决方案1】:

您可以在表单中为每个数据条目添加一个值为id 的复选框:

<?php foreach ($content as $row):?>
<tr>
    <td><input type="checkbox" value="<?php echo $row['id']?>" name="id[]"></td>
    <td><?php echo $counter = $counter+1;?></td>
    <td><input type="text" class="form-control" value="<?php echo $row['title']?>" name="title[]"></td>
    <td><?php echo $row['file_name']?></td>
    <td><input type="file" class="form-control" name="upload[]"></td>
    <td><input type="text" class="form-control" value="<?php echo $row['alt']?>" name="alt[]"></td>
    <td><input type="text" class="form-control" value="<?php echo $row['link']?>" name="link[]"></td>
    <input type="hidden" value="<?php echo $row['file_path']?>" name="path">
    <td>
    <button type="submit" class="btn btn-default" name="submit" value="update">Update</button>
    <button type="submit" class="btn btn-default" name="submit" value="delete">Delete</button>
    </td>
</tr>
<?php endforeach;?>

然后当表单被提交时,你可以有一个循环来根据复选框是否被选中来操作每个数据条目。

这是一个例子:

for($i=0; $i<count($_POST[alt]); $i++) {
    if(isset($_POST[$i][id])) {
        // do something with $_POST[$i][id]
    }
}

?>

【讨论】:

    【解决方案2】:

    试试这个:

    将行数保留在表单顶部的隐藏字段中。

        <input type="hidden"  value="<?php count($content); ?>" name="row_count"/>
    

    为输入字段使用唯一名称并在每一行中提交按钮,例如,使用变量 $i,该变量在每个循环中递增。

        <input type="text" class="form-control" value="<?php echo $row['link']?>" name="link<?php echo $i; ?>"/>
    
        <button type="submit" class="btn btn-default" name="submit_<?php echo $i; ?>" value="update">Update</button>
    

    在控制器中:

        if(isset($_POST)){
          $row_count=$_POST{'row_count'];
    
           for($i=0; $i<$row_count; $i++) {
             if(isset($_POST['submit_'.$i])) {
    
               // do something with $_POST['submit_'.$i]
    
             }
           }
        }
    

    希望这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 2016-02-10
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多