2011-12-16 44 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)後,沒有什麼可以改變的。您可以發佈您的代碼嗎?