1

これは、ブラウザのJavaScriptがデータをサーバーに保存し、.postおよび.get jQuery ajax呼び出しを使用してサーバーからロードすることに関する私のアプリケーションの提出されたバージョンです。

returnStateサーバーから受信したことを示すために、送信されたコードに追加されます (テスト目的で、何を受信するかを伝えるため)。

Javascript コードを保存します。

var text = [];
text = {
    text: "Text to be saved.",
    returnState: "success"
};
$.post("Save.php", {
    datatype: "json",
    text : JSON.stringify(text)
});

サーバー保存 PHP コード:

<?php
session_start();
$json = $_REQUEST['text'];
if(get_magic_quotes_gpc()) $json = stripslashes($json);
$new = (array)json_decode($json);
$_SESSION['savedText'] = $new['text'];
echo $new['returnState'];
?>

JavaScript コードをロードします。

var text = [];

$.get("Load.php", {
    returnState: 'success'
}).done(function (data) {
    text = JSON.parse(data);

    console.log(text.returnState);
    console.log(text.text);
});

サーバー ロード PHP コード:

<?php
session_start();
$returnValues = array(
    text => json_decode($_SESSION['savedText']),
    returnState => $_SESSION['returnState']
);
echo json_encode($returnValues);
?>
  • エラーの場合、失敗したと解釈できる適切なデータを取得できません。.fail()代わりに使うべきですか?
  • own を使用したくない場合returnState、どのような/どのように PHP 応答が jQuery を に陥らせることができ.fail()ますか?
  • Server PHP Load コードのシリアル化されたテキストから PHP 配列を正しく作成するために懸命に作業しましたが、それは良い方法ですか?
4

3 に答える 3

1
  • .done で .fail を使用する
  • カスタムの「returnState」の代わりに 4xx http コードを使用します。.fail 関数を起動します

PS $_REQUEST を使用しないでください。代わりに $_GET と $_POST を使用してください。

PPS 「マジック クォート」を使用しないでください。新しい php バージョンでは非推奨です。

于 2013-08-01T11:09:55.160 に答える
0

送信するデータは 2 番目のパラメーターにする必要があります。シリアル化する必要はありません

$.post('Save.php', text);

成功のコールバック関数が必要な場合は、3 番目のパラメーターにする必要があります

$.post('Save.php', text, function(data) {
  console.log('all good!');
});

戻りデータのデータ型を指定する必要がある場合は、4 番目のパラメーターにする必要があります

$.post('Save.php', text, function(data) {
  console.log('all good!');
}, 'json');

失敗のコールバックが必要な場合は、次のdeferred構文を使用する必要があります。

$.post('http://www.asd.it', text, function(data) {
  console.log('all good!');
}).fail(function() {
  console.log('error');
});

結論: ドキュメントの使い方を学ぶ

于 2013-08-01T11:18:03.060 に答える
0

$.post は次のようになります

$.post("Save.php", {text : JSON.stringify(text)}, 'text'); 
于 2013-08-01T10:59:24.193 に答える