如何在表单中提交多个表格行



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

<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>

您可以通过

在表单中为每个数据条目放置一个值为 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]
    }
}
?>

试试这个:

将隐藏字段中的行数保留在窗体顶部。

    <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]
         }
       }
    }

希望这对您有所帮助。

相关内容

  • 没有找到相关文章