我在我的程序中有这个场景,我正在使用下面的代码打印一个复选框列表到我的主页
<form action="two.php" method="post">
<div id="option_box" style="width: 250px; height: 400px; overflow: scroll;">
<?php
$sql = "SELECT * FROM gene_names ORDER BY name";
$result = $db->query($sql);
$counter = 0;
echo "<table border=\"0\">";
while ($row = $result->fetch()) {
$output[] = "<tr>";
$output[] = "<td>";
$output[] = "<input type=\"checkbox\" value=\"".$row['name']."\" name=\"things[]\" id=\"ran\"/>";
$output[] = " ";
$output[] = $row['name'];
$output[] = "</td>";
$output[] = "</tr>";
$counter++;
}
echo join('',$output);
echo "</table>";
?>
</div>
<input type="submit" value="See Interactions" name="see" id="see"/>
</form>
之后我使用下面的代码来使用jquery ajax
完成该过程 $('#see').click(function(eve){
eve.preventDefault();
$.post('two.php', function(data) {
$('#results_of_interactions').html(data);
});
});
但我需要在我的two.php(处理上述表单的进程的文件)文件中获取所选复选框值以执行sql查询,但是当我使用此jquery方法时,复选框变量是我的two.php文件不可用,所以我的查询没有正确执行,我无法得到结果,我怎么能纠正这个问题?请建议一些事情要做,修改这个或另一种方法?
的问候, 兰加纳
答案 0 :(得分:1)
那是因为您必须手动准备数据并将其与您的帖子请求一起发送,它不提交表单,它会提交您手动指示提交给two.php
的任何内容
$('#see').click(function(eve){
eve.preventDefault();
//serialize form data to be sent with request
var data = $('form').serialize();
//send request with 'data'
$.post('two.php', data, function(data) {
$('#results_of_interactions').html(data);
},'json');
});