簡體   English   中英

將jQuery表單序列化數據發布到php

[英]Post jQuery form serialized data to php

我試圖將jQuery中的序列化數據發布到php,如下所示。

$.post(location.href, $('form').serialize(), function(data){
    // do something
});

它工作得很好。 但有沒有辦法可以為序列化數據設置名稱,所以我可以將該名稱用於isset()函數? 它看起來像這樣:

我們假設表格有

<input type="text" name="input1">
<input type="text" name="input2">

file.js

$.post(location.href, {data:$('form').serialize()}, function(data){
    // do something
});

file.php

<?php
    if (isset($_POST['data'])) {
        // retrieve the data in the serialized string and use it in a function
        helperFunction($_POST['input1'], $_POST['input2']);
    }
?>

<html>
    // rest of the layout
</html>

我不想使用按鈕來提交表單。 我不想要它的原因是:

  1. 使用<button type="submit">Submit</button> ,然后在我提交表單后,當我刷新頁面(我不想要它)時,將表單提交到同一頁面將要求重新提交。
  2. 在我發布后刷新頁面時,使用jQuery將序列化數據發布到服務器將不會要求重新提交。

你可以添加一個隱藏變量並在post值中檢查它。

<input type="hidden" name="check_val" value="chek_val" />
<?php

if(isset($ _ POST ['check_val'])){

}?>

由於PHP從提交的POST數據中解析數組,您可以像這樣操作:

<input type="text" name="inputs[data][1]">
<input type="text" name="inputs[data][2]">

<?php
    if( isset( $_POST[ 'inputs' ][ 'data' ] ) ) {
        helperFunction( $_POST[ 'inputs' ][ 'data' ][ '1' ], $_POST[ 'inputs' ][ 'data' ][ '2' ] );
    }
?>

但實際上我沒有看到為什么不做更簡單的原因:

<input type="text" name="input1">
<input type="text" name="input2">

<?php
    if ( isset( $_POST[ 'input1' ] ) &&
         isset( $_POST[ 'input2' ] ) ){
        helperFunction( $_POST[ 'input1' ], $_POST[ 'ipnut2' ] );
    }
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM