0

下面的 $divCreator 是一个变量。它可以取 1 到 10 之间的值。我在 php 的 while 循环中使用下面的 html。现在我想做的是我想将两个变量传递给一个 php 脚本。一个是 quesID,另一个是 testID。我已经有了 testID 的值。但是问题出现在 quesID 上。我总是将 quesID 值设为 1。这是从 while 循环构建的第一个表单的值。HTML代码是:

<form id="form_create_ques" action="" method="get">
    <div class="grid-6 grid grey">
        <input id="quesid_form" name="quesID" type="text" value="<?php echo $divCreator;  ?>" />
        <input type="submit" class="button_create_ques" value="<?php echo $divCreator; ?>" />
    </div>
</form>

Jquery 代码:(我的 Jquery 很弱,所以我需要一些帮助)。

<script type="text/javascript">
 $(document).ready(function (){
  $(".button_create_ques").click(function(){
    var form_data = $("#form_create_ques").serialize(); //Always returns quesID=1
    alert(form_data);
    $.ajax({
    url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>",
    type: 'GET',
    data: form_data,
    success: function() 
            {
             //Do something..
            }
        });
        return false;
      });
    });

如果您有任何更好或替代的解决方案,请解释一下。我真的很感激。对不起,我还在学习 Jquery。

4

3 回答 3

1

id值在文档中必须是唯一的。因为您的表单都具有相同的id内容,所以使用诸如此类的选择器$("#form_create_ques")将始终返回 this 的第一次出现id

您可以完全删除id并使用它来获取form基于按钮的:

var form_data = $(this).closest("form").serialize();
于 2013-11-01T18:15:25.013 回答
1

有两种可能的方式:

1:向表单添加新hidden字段:

<input type="hidden" name="quesID" value="<?php echo addslashes(htmlspecialchars($_GET['testID'])); ?>" />

2:删除data: form_data,和修改:

url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>&" + form_data,
于 2013-11-01T18:16:43.303 回答
1

由于 ID 必须是唯一的,因此您不能为所有表单提供相同的 ID。所以省略ID。

<form action="" method="get">
    <div class="grid-6 grid grey">
        <input id="quesid_form" name="quesID" type="text" value="<?php echo $divCreator;  ?>" />
        <input type="submit" class="button_create_ques" value="<?php echo $divCreator; ?>" />
    </div>
</form>

然后,您应该使用 jQuery 中的 DOM 遍历函数来查找与单击的按钮对应的表单:

 $(document).ready(function (){
  $(".button_create_ques").click(function(){
    var form_data = $(this).closest("form").serialize();
    alert(form_data);
    $.ajax({
    url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>",
    type: 'GET',
    data: form_data,
    success: function() 
            {
             //Do something..
            }
        });
        return false;
      });
    });
于 2013-11-01T18:22:11.790 回答