我知道这是行不通的。但这就是我要做的。我希望多个表行数据不是一次全部提交到表单操作,而是在单击各个行时提交。不知道如何让它工作!
<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]
}
}
}
希望这对您有所帮助。