只有在提交表单时,Ajax才会占用第一行

时间:2012-03-07 01:38:38

标签: php ajax forms

我目前正在返回一个数组并通过它运行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 + '&section=' + section;  
    alert(dataString);
    $.ajax({
       type: "POST",
       url: "nominate.php",
       data: dataString,
       success: function(){

       }
    });


    });
  });



</script>

1 个答案:

答案 0 :(得分:0)

更改以下代码

var id = $('#Nid').val();

var id = $(this).closest('form').find('input[name=id]').val();

你也应该删除id =“Nid”,因为id只能使用一次。如果有的话应该是一个班级。上面的代码检查最近的表单元素并获取id。