2011-12-16 154 views
1

我有一个表格使用POST提交,我想将它转换为表单的ajax提交。当我使用.submit功能与.ajax功能时我序列数据FOM形式也将是一样的只是做一个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

您可以发布您的代码吗? – 2011-12-16 19:28:05

回答

0

使用.submit(function)只是结合Ajax调用来提交,所以你可能在离开之前提交页面。您需要将ajax调用绑定到提交按钮上的单击事件(作为示例)并阻止默认提交。

0

是的,所有的表单变量都被序列化并在POST请求中发送,就像表单action =“post”会提交一样。除了通过表单处理脚本传递的输出以及JavaScript如何处理该输出(即成功或缺少字段X)后,没有什么可以改变的。您可以发布您的代码吗?