我目前正在返回一个数组并通过它运行for循环。表单应该在提交时接受id,screenName和course。 ajax工作。但是,它始终只接受第一行的id。没有ajax,我可以提交不同行的表单。但我不希望每次单击按钮时刷新页面,所以我包括ajax部分。我不知道我哪里出错了,因为我对这个领域很新。任何帮助,将不胜感激。
<form name ="nominate" action="" id ="nominate" method="POST">
<input type="hidden" name="id" id = "Nid" value="<?php echo $id;?>">
<input type="hidden" name="screenName" id = "screenName" value="<?php echo $screenName;?>">
<input type="hidden" name="course" id = "course" value="<?php echo $course;?>">
<input type="image" class="nominate" style="float: left;" onMouseOver="this.src='images/discuss_this_u.png'"
onMouseOut="this.src='images/discuss_this.png'" value="Place Order" src="images/discuss_this.png" width="60" height="20">
</form>
<script>
$(function() {
$(".nominate").click(function() {
var id = $('#Nid').val();
var screenName = $('#screenName').val();
var course = '<?php echo $course ;?>';
var section = '<?php echo $section ;?>';
var dataString = 'id='+ id + '&screenName=' + screenName + '&course=' + course + '§ion=' + section;
alert(dataString);
$.ajax({
type: "POST",
url: "nominate.php",
data: dataString,
success: function(){
}
});
});
});
</script>
答案 0 :(得分:0)
更改以下代码
var id = $('#Nid').val();
到
var id = $(this).closest('form').find('input[name=id]').val();
你也应该删除id =“Nid”,因为id只能使用一次。如果有的话应该是一个班级。上面的代码检查最近的表单元素并获取id。