我搜索并搜索过但无法修复我的问题..帮助;)
我有一个我在while循环中创建的表单。然后我使用AJAX来处理它。问题是它只会在第一个表单中汇总,即使我点击第二个表单。假设这是由于每个表单都需要唯一的ID。我有问题这样做......任何帮助都会很棒。
My Php for form
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0" >';
echo ' <tr>';
echo ' <td style="color:#bbb">Team Name</td>';
echo '<td style="color:#bbb">Event Name</td>';
echo ' <td style="color:#bbb">Event Level</td>';
echo ' <td style="color:#bbb">Comments</td>';
echo '<td style="color:#bbb"> </td>';
echo ' <td style="color:#bbb"> </td>';
echo ' </tr>';
while ($row = mysql_fetch_array($pendingresult)) {
$id = $row['reg_id'];
print "<form id=\"$id\" name=\"CDs\" method=\"post\" action=\"$_SERVER[PHP_SELF]\">";
echo '<tr class="commentContainer">';
echo "<td><input type=\"text\" name=\"team_name\" value=\"$row[team_name]\"</td>";
echo "<td><input type=\"text\" name=\"reg_id\" value=\"$row[reg_id]\"</td>";
echo "<td><input type=\"text\" name=\"team_level\" value=\"$row[team_level]\"</td>";
echo "<td><input type=\"text\" name=\"notes\" value=\"$row[comments]\"</td>";
echo "<td>";
echo "<td class=\"delete\" align=\"center\" id=" . $row['reg_id'] . " width=\"10\"><a href=\"#\" id=\"$row[reg_id]\"><img src=\"admin/images/delete.png\" border=\"0\" ></a></td>";
echo "<td class=\"approve\" align=\"center\" id=" . $id . " width=\"10\"><a href=\"#\" id=\"$row[reg_id]\"><img src=\"admin/images/approve.png\" border=\"0\" ></a></td>";
echo "</td>";
echo "</tr>";
echo "</form>";
}
我的AJAX
$(document).ready(function () {});
$(function () {
$(".approve").click(function () {
var commentContainer = $(this).parent('tr:first');
var id = $(this).attr("id");
var string = 'id=' + id;
var formData = this.form.id;
$.ajax({
type: "POST",
url: "approve.php",
data: $("formData").serialize(),
cache: false,
success: function () {
commentContainer.slideUp('slow', function () {
$(this).remove();
});
}
});
return false;
});
});
答案 0 :(得分:1)
在你的ajax改变中
数据:$(&#34; formData&#34;)。serialize()
到
数据:$(&#34;表格#&#34; + id).serialize()
它将捕获您正在处理的当前表单
答案 1 :(得分:0)
您正在使用while循环中的表单字段,这意味着它们是具有相同名称的输入字段数组。
所以你需要将它们组合成一个变量并相应地传递它。
示例强>
var team_name = $("input[name=team_name]").map(function(){
return $(this).val();
}).get().join(",");
等等其他领域。
试试吧。