我有一个在外部文件中创建的表单然后我将其包含在php中,然后通过其id来获取此表单以进行序列化。 的index.php
<div id="addressesList">
<?php include 'addresstable.php' ?>
</div>
index.php中的jquery代码:
<script>
function editAddress(){
$.ajax({
url: 'insert.php',
type: 'POST',
data: $('#addressListForm').serialize() , // An object with the key 'submit' and value 'true; + '&' + 'editAddress' + '=' + id
success: function (result) {
//$(thisObj).parents("tr:first").remove();
$("#addressesList").html(result);
}
});
}
</script>
我希望通过单击调用editAdress函数的元素来获取其id为“addressListForm”的表单。 addresstable.php文件
<?php
$i=1;
$results=mysqli_query($dbCnn,"select * from addresses");
while( $row=mysqli_fetch_array($results,MYSQLI_ASSOC))
{
echo '<form action="insert.php" method="post" id="addressListForm">';
echo "<tr>
<input type='hidden' value='$row[id]' name='id'/>
<td>$i</td>
<td><input name='title' type='text' value='$row[title]' style='width:60px' /></td>
<td><input name='address' type='text' value='$row[address]' style='width:100%' /></td>
<td><input name='tel' type='text' value='$row[phone]' required='required' style='width:100px' /></td>
<td><input name='fax' type='text' value='$row[fax]' required='required' style='width:100px' /></td>
<td><i onclick=\"editAddress($row[id],this)\" class='fa fa-pencil-square-o' title='ثبت تغییرات رایانامه'></i></td>
<td><i onclick=\"deleteAddress($row[id],this)\" class='fa fa-trash-o deletUser' title='حذف کاربر' ></i></td>
</tr>";
$i++;
echo"</form>";
}
?>
</tbody>
答案 0 :(得分:0)
在addresstable.php
文件中,您应该将表标记放在表单中,addressListForm
id现在无法访问(在源语法突出显示中也很明显)。
<table>
<tr>
<td>
<form ...></form>
</td>
</tr>
<tr>
<td>
<form ...></form>
</td>
</tr>
</table>
如果您有多个表单,请将每个表单放入新的<tr><td>
,</td></tr>
将其更改为:
<?php
$i=1;
$results=mysqli_query($dbCnn,"select * from addresses");
while( $row=mysqli_fetch_array($results,MYSQLI_ASSOC))
{
echo "<tr id="addressListForm">
<td>
<input type='hidden' value='$row[id]' name='id'/>
$i</td>
<td><input name='title' type='text' value='$row[title]' style='width:60px' /></td>
<td><input name='address' type='text' value='$row[address]' style='width:100%' /></td>
<td><input name='tel' type='text' value='$row[phone]' required='required' style='width:100px' /></td>
<td><input name='fax' type='text' value='$row[fax]' required='required' style='width:100px' /></td>
<td><i onclick=\"editAddress($row[id],this)\" class='fa fa-pencil-square-o' title='ثبت تغییرات رایانامه'></i></td>
<td><i onclick=\"deleteAddress($row[id],this)\" class='fa fa-trash-o deletUser' title='حذف کاربر' ></i></td>
</tr>";
$i++;
}
?>
</tbody>
答案 1 :(得分:-1)
我通过更改代码中的某些内容解决了我的问题:
的index.php
function editAddress(id,thisObj,x){
var formId="#addressListForm" + x;
$.ajax({
url: 'insert.php',
type: 'POST',
data: $(formId).serialize()+ '&' + 'editAddress' + '=' + id ,
success: function (result) {
$("#addressesList").html(result);
}
});
}
和addresstable.php文件
<tbody id="addressTb">
<?php
$i=1;
$results=mysqli_query($dbCnn,"select * from addresses");
while( $row=mysqli_fetch_array($results,MYSQLI_ASSOC))
{
echo "
<tr>
<td>$i<form action='insert.php' method='post' id='addressListForm$i'><input form='addressListForm$i' type='hidden' value='$row[id]' name='id'/> </td>
<td><input form='addressListForm$i' name='title' type='text' value='$row[title]' style='width:60px' /></td>
<td><input form='addressListForm$i' name='address' type='text' value='$row[address]' style='width:100%' /></td>
<td><input form='addressListForm$i' name='phone' type='text' value='$row[phone]' required='required' style='width:100px' /></td>
<td><input form='addressListForm$i' name='fax' type='text' value='$row[fax]' required='required' style='width:100px' /></td>
<td><i onclick=\"editAddress($row[id],this,$i)\" class='fa fa-pencil-square-o' title='ثبت تغییرات رایانامه'></i></td>
<td><i onclick=\"deleteAddress($row[id],this,$i)\" class='fa fa-trash-o deletUser' title='حذف کاربر' ></i></form></td>
</tr>
";
$i++;
}
?>
</tbody>