2011-12-25 4 views
0

jquery serializeの値をphpファイルで送信できます。しかし、私はjqueryをシリアル化することはできませんPHPの値をシリアル化します。さて、私に教えてくださいjqueryをunserializeする方法は、PHPファイルの値をシリアル化します。私のjqueryのコードは次のとおりです。phpでjQuery-serializeの値をunserializeする方法

<script type="text/javascript"> 
    // index.php 
    function get(){ 
     $('#age').hide(); 
     $.post('data.php',{ name: $('form').serialize() }, 

    function (output){ 
     $('#age').html(output).fadeIn(1000); 
    }); 
    } 
</script> 

data.phpファイルは次のとおりです。

<?php 
echo var_dump(unserialize($_POST['name'])); 
?> 

私はアンシリアライズjqueryのシリアル化値のコード上で使用しますが、私は

答えて

1

さて、あなたはどんな結果を得ることはありませんあなたが最終的にjson_decode()


を使用する必要がありますので、あなたのPHPスクリプトにJSONオブジェクトを送信$_POSTのデータが文字列として解釈され、JSON構文を持つ文字列がPHPに渡されるだけなので、結果は得られません。コンテンツを取得するには、上記にリンクされたjson_decode()関数を使用する必要があります。それを使用する前に、$_POST['name']に格納された値がある場合、デフォルトでは、連想配列

// return stdClass or null on error 
$jsonData = json_decode($_POST['name']); 

// return associative array or null on error 
$jsonData = json_decode($_POST['name'], true); 

を返すために、第2パラメータにtrueを渡し、stdClassオブジェクトを返しますあなたはチェックするようにしてください。程度にそれを簡素化する方法

4

<script type="text/javascript"> 
// index.php 
function get(){ 
    $('#age').hide(); 
    $.post('data.php',$('form').serialize(), 
     function (output){ 
      $('#age').html(output).fadeIn(1000); 
    }); 
} 
</script> 

、ここでシリアライズ使用data.php

<?php 
    $name=$_POST; 
    echo var_dump($name); 
?> 

には、フォームが提出したものと同じです。

1

何かをシリアル化する必要はありません。関数の名前は少し誤解を招く。

<input name="a" value="foo" /> 
<input name="b" value="bar" /> 

は、この文字列になります:

a=foo&b=bar 
jQueryの .serialize()は、以下のフォームに .serialize()を呼び出し、それは、例えば、通常のフォームで送信されたかのようにのような形式の文字列表現を作成し、あなたがあなたのAJAX呼び出しを変更する場合

$.post('data.php', $('form').serialize(), function (output) {...}); 

フォームは単に、$_POSTで使用できるようになります。

0

jqueryの=>

var data = $('form').serialize(); 
      $.post(baseUrl+'/ajax.php', 
        {action:'saveData',data:data}, 
        function(data) { 
         alert(data); 
        }); 

PHP =>

parse_str($_POST['data'], $searcharray); 
    echo ('<PRE>');print_r($searcharray);echo ('</PRE>'); 

出力=>

[query] => 
[search_type] => 0 
[motive_note] => 
[id_state] => 1 
[sel_status] => Array 
    (
     [8] => 0 
     [7] => 1 
    ) 

正しく私の答え100% work for my 仕事を転載し、あなたがどんなものをあなたに行うことができます申し訳ありません"$ searcharray"可変データ、のようにしたいありがとうAridane https://stackoverflow.com/questions/1792603

1

一般に、データのシリアル化を解除する必要はありません。

データがforパラメータとして渡されている場合は、次のようになります。

$form_values = $_POST; 
print_r($form_values); 

ただし、シリアル化された文字列をフォームのフィールドの1つとして渡すこともできます。この場合、次のようなものを使用できます。

$form_values = $_POST; 
$serialised_form_value = $form_values['some_field_from_form']; 
parse_str($serialised_form_value, $field_value); 
print_r($field_value); 
関連する問題