【问题标题】:Ajax always takes in first row only when submitting form只有在提交表单时,Ajax 总是在第一行
【发布时间】:2012-03-07 01:38:38
【问题描述】:

我目前正在返回一个数组并通过它运行一个 for 循环。提交时,表单应该包含 id、screenName 和 course。阿贾克斯工作。但是,它总是只接受第一行的 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>

【问题讨论】:

  • 所以生成了上面的表格,多谢一次

标签: php ajax forms


【解决方案1】:

在下面更改您的代码

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

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

您还应该删除 id="Nid" 因为 id 只能使用一次。如果有的话,它应该是一个类。上面的代码检查最近的表单元素并获取 id。

【讨论】:

  • 我明白了..是的,当我输入你的代码时它就可以工作。感谢您的帮助和洞察力。
猜你喜欢
  • 2013-02-28
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
相关资源
最近更新 更多