$ divCreator下面是一个变量。它可以从1到10取值。我在php中的while循环中使用下面的html。现在我想做的是我想将两个变量传递给php脚本。一个是quesID,另一个是testID。我已经有了testID的值。但是问题出现了问题。我总是将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。
答案 0 :(得分:1)
id
值在文档中必须是唯一的。由于您的表单都具有相同的id
,因此使用$("#form_create_ques")
之类的选择器将始终返回此id
的第一个匹配项。
您可以完全删除id
并使用此功能根据按钮获取form
:
var form_data = $(this).closest("form").serialize();
答案 1 :(得分: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,
答案 2 :(得分: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;
});
});