我有一个使用POST
提交的表单,我想将其转换为表单的ajax提交。当我将.submit
函数与.ajax
函数放在一起时,我将数据序列化时,表单就像只执行POST
一些代码:
<script type="text/javascript">
$("#optionsForm").submit(function(){
var data= $("#optionsForm").serialize();
$.ajax({
url: 'filter.php',
type: 'post',
data: data,
success: function(data){
alert(data);
}
});
return false;
});
</script>
<?php
$html = "";
$html .= "<div id='options'>";
$html .= "<form id='optionsForm' method='post'>";
foreach($selectValues as $key => $value){
$title=new MODEL\String($key);
$html.= "<fieldset class='optionsBox'>";
$html.= "<legend>".$title->friendlify()."</legend><br/>";
foreach($value as $option){
$html .= "<input type='checkbox' name='".$key."[]' value='$option'>".htmlspecialchars($option)."</input>";
}
$html.= "</fieldset>";
}
$html .= "</select><input type='submit' value='submit'></form></div>";
$html .= "<div id='tables'></div>";
我检索数据的地方:
if(!empty($_POST)){
$filterValue=$_POST;
}
else{
$filterValue="y";
}
答案 0 :(得分:0)
使用.submit(function)
只是将ajax调用绑定到提交,因此您可能在提交之前离开了页面。您需要将ajax调用绑定到提交按钮上的单击事件(作为示例)并阻止默认提交。
答案 1 :(得分:0)
是的,所有表单变量都是序列化的,并在POST请求中发送,就像表单操作=“post”将提交一样。除了从表单处理脚本传递的输出以及JavaScript应如何处理该输出(即成功或缺少字段X)之外,后端无需更改任何内容