下面的$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。
发布于 2013-11-01 18:15:25
id值在文档中必须是唯一的。因为您的表单都具有相同的id,所以使用选择器(如$("#form_create_ques") )总是会返回该id的第一次出现。
您可以完全删除id,并使用它获取基于按钮的form:
var form_data = $(this).closest("form").serialize();发布于 2013-11-01 18:16:43
有两种可能的方法:
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-01 18:22:11
因为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;
});
});https://stackoverflow.com/questions/19732744
复制相似问题