我知道这不起作用。但这就是我想要做的。我希望将多个表行数据提交到表单操作,而不是一次提交,而是单击各个行。不知道如何使它工作!
<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>
答案 0 :(得分:2)
您可以在表单中为每个数据条目添加一个值为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]
}
}
?>
答案 1 :(得分:0)
试试这个:
将行数保留在表单顶部的隐藏字段中。
<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]
}
}
}
希望这会对你有所帮助。