Php Jquery从循环中获取输入值
我想使用php、jquery和ajax制作一个内联编辑解决方案 我的循环:Php Jquery从循环中获取输入值,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我想使用php、jquery和ajax制作一个内联编辑解决方案 我的循环: $a=0; while($row = $db->fetch_array($res)){ if($a%2==1){ $class = 'class="even"'; } else{ $class = 'class="odd"'; } $a++; Html表格: <tr <?php echo $class; ?>> <td class="t
$a=0;
while($row = $db->fetch_array($res)){
if($a%2==1){
$class = 'class="even"';
}
else{
$class = 'class="odd"';
}
$a++;
Html表格:
<tr <?php echo $class; ?>>
<td class="th table-check-cell sorting_1"><input type="checkbox" name="zones_id[]" value="<?php echo $row['zone_id']; ?>"></td>
<td><?php echo $a; ?></td>
<td><?php echo $row['zone_name']; ?></td>
<td><?php echo $row['zone_position']; ?></td>
<td><?php echo $row['status']; ?></td>
<td class="table-actions">
<a href="javascript:void(0);" title="Edit" class="with-tip" onclick="slidemenu('innerlinks_<?php echo $a; ?>')"><img src="images/icons/fugue/pencil.png" width="16" height="16"></a></td>
</tr>
<tr style="display:none;" id="innerlinks_<?php echo $a; ?>" class="sub">
<td><?php echo $a; ?></td>
<td><input type="checkbox" /></td>
<td><input type="text" class="zn" name="zone_name" id="zone_name" value="<?php echo $row['zone_name']; ?>" /></td>
<td><input type="text" name="zone_pos" id="zone_pos" value="<?php echo $row['zone_position']; ?>" /></td>
<td colspan="2"><a><?php echo $row['zone_name']; ?></a></td>
</tr>
<?php } ?>
function slidemenu(id){
$('#'+id).slideToggle();
}
///second proccess
$(".sub").click(function(){
$(this).closest('tr').find("input,select").each(function() {
$.ajax({
type: "POST",
url: "<?php echo SITE_URL .'controlls/zone_add.php'; ?>",
data: datastring,
success: function (data) {
alert("Details saved successfully!!!");
}
})
});
});
我想要两件事:
一个是隐藏我的数据行和显示表单行进行编辑。
第二个问题是如何通过ajax请求的名称获取所有输入select radio等您需要做的是为表中的每一行生成一个唯一的ID,并为表行提供该ID:
<tr id="<?= $id ?>" class="<?= $class ?>">
然后,您可以使用jQuery$找到这一行,并操纵该行的内容,用输入控件和提交/取消按钮替换静态文本
另外,当您想要提交时,您可以通过使用jQuery查询来检索输入值。
例如:
$("tr#<?= $id ?> input#zone_name").value();
关键是给每一行一个唯一的id,您可能已经在数据库中有了这个id…您不想对每个字段都使用AJAX POST
$(".sub").click(
function() {
var data = {};
$(this).closest("tr").find( "input,select").each(
function() {
data[$(this).attr("name")] = $(this).val();
}
);
$.post( "your URL", data, function( data ) { alert( "Successful!" ); } );
}
);
我没有看你的选择器。我想你是对的。我只关注从每个字段捕获值、将其添加到JavaScript对象并通过AJAX发布的过程。您有什么问题?要获取特定的行字段值,您需要为每行定义onclick事件以包含行ID。这样,它就成为事件处理程序的输入。A您的答案几乎正确,但您为数据创建了一个数组,该数组返回所有页面输入值。我为数据创建一个字符串,如:var data=;并在该数组中附加值,而不使用如下数组:var data+=$this.attrname=$this.val;在最后一部分中,我通过javascript片段删除逗号,并完成了我的工作。谢谢你的回复。为什么连在一起以后还要切片呢?