2012-03-07 99 views
0

我目前正在返回一個數組並通過它運行for循環。表單在提交時應該包含id,screenName和course。阿賈克斯的作品。但是,它總是隻接受第一行的id。沒有ajax,我可以提交不同行的表單。但我不想每次單擊按鈕時刷新頁面,所以我包括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> 
+0

所以上面的表格是生成更多謝謝一次 – Starx 2012-03-07 02:05:46

回答

0

更改您的代碼如下

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

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

你也應該刪除ID = 「Nid的」,因爲ID的只能使用一次。如果有的話,它應該是一個班級。上面的代碼檢查最接近的表單元素並獲取id。

+0

我看到..是的,它的工作原理時,我把你的代碼。感謝您的幫助和洞察力。 – 2012-03-07 02:44:37