2012-03-07 2 views
0

현재 배열을 반환하고 for 루프를 실행 중입니다. 양식은 제출 될 때 id, screenName 및 코스를 받아들입니다. 아약스가 작동합니다. 그러나 항상 첫 번째 행의 id 만 가져옵니다. 아약스가 없으면 다른 행의 양식을 제출할 수 있습니다. 하지만 버튼을 클릭 할 때마다 페이지가 새로 고쳐져서 아약스 부분이 포함되기를 원하지 않습니다. 나는 내가이 분야에 꽤 새로운 이래로 내가 어디로 잘못 가고 있는지 확실하지 않다. 어떤 도움을 주시면 감사하겠습니다.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

답변

0
당신은 또한 ID = "꾸벅"을 제거해야합니다 아이디의이 한 번만 사용할 수 있기 때문에

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

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

아래 코드를 변경

. 어떤 것이 든 그것은 수업이어야합니다. 위의 코드는 가장 가까운 양식 요소를 확인하고 id를 부여합니다.

+0

알겠습니다. 예, ur 코드를 넣으면 작동합니다. 도움과 통찰력에 감사드립니다. –

관련 문제