我的网站上有一张表格。问题存储在数据库中,一些变量确定您看到的问题。因此,问题的数量是未知的。问题的代码是这样的:
HTML
<ol class="questions">
<?php
$number = 1;
while($row = mysql_fetch_assoc($result)) {
echo '<li>';
echo '<span><label for="q'.$number.'">'.$row['question'].'</label></span>';
echo '<input id="q'.$number.'" name="q'.$number.'" type="text" value="'.$row['description'].'" onclick="this.value="";this.onclick="test";this.style.color="#000000"; setAttribute("type", "text");" onfocus="if (this.value == "'.$row['description'].'") {this.value = ""; setAttribute("type", "text");}" onblur="if (this.value == "") {this.value = "'.$row['description'].'";setAttribute("type", "text");}"/>';
echo '</li>';
$number++;
};?>
</ol>
现在,在提交表单时,我想用AJAX发布这些问题的答案。如何用未知数量的问题做到这一点?
答案 0 :(得分:1)
您可以通过这样的ajax提交表单。
$("#myForm").submit(function() {
$.post('post.php',$(this).serialize(), function(data) {
alert(data);
});
return false;
});
答案 1 :(得分:1)
如前作者所说,使用serialize()
函数。他没有提到我现在要澄清的事情。
JavaScript代码:
$("#button").on("click", function() {
$.ajax({
url: "someurl.php",
method: "post",
data: $("#myform").serialize()
});
});
HTML代码必须如此:
<form id="myForm">
<input type='text' name='field1' />
<input type='text' name='field2' />
<input type='text' name='etc' />
</form>
<a href='#' id="button">Send ajax</a>
现在,当您单击Send ajax
按钮时,表单将被序列化(这意味着创建字符串,它将包含有效的URL查询,因此可以随请求一起发送)。在此处阅读:https://api.jquery.com/serialize/
希望,这会有所帮助。
问我有什么不清楚的地方。