4

いくつかの入力フィールドを持つ基本的なフォームがあります。フォーム送信時にフォームデータをjsonファイルに保存したい。jsonファイルに保存されるデータの形式はこのようになっているはずです。

[
    {"title":"some text","description":"some text","info":"some text","username":"some name"},
    {"title":"some text","description":"some text","info":"some text","username":"some name"},
    {"title":"some text","description":"some text","info":"some text","username":"some name"}
]

このコードを使用してこれを実行しようとしましたが、「story.json ファイル」にデータが保存されません

$('form').submit(function() {
    $.ajax({
       type: 'POST', 
       dataType: 'json', 
       url: 'story.json', 
       data: $(this).serialize(), 
       success: function(data) { 
           alert(data.message); 
       },
       failure: function (data) {
           alert('Please try again');
       }
    });
 });

このフォーム データをローカル ファイルに保存したいと考えています。これを行う正しい方法を見つけるのを手伝ってください。ありがとう

4

3 に答える 3

3

シンプルなphpファイルにデータを投稿する必要があります...

そのphpファイルで、そのjsonurl: 'story.php' を使用して「story.json」を作成し、保存しますfopen

serialize()編集:このようなものを使用するよりも使用したい場合

data:{'mydata':$(this).serialize()}

そしてphpファイルで

parse_str($_POST['mydata'],$newarray) ;

echo json_encode($newarray);
于 2012-10-28T09:09:03.243 に答える
2

FireFox プラグインでない限り、JavaScript はファイルに保存できません。

あなたがすることは、フォームを投稿して(ウェブサーバーに送信して)、サーバー側のスクリプトに処理させることです。

Serialize はフォームの値を JSON 文字列に変換しません。

http://api.jquery.com/serialize/

$.post を使用する場合は、 $('form').submit(function() で false を返す必要があります。そうしないと、ブラウザーがフォームを送信します。

フォームの送信とは、ボタンをクリックしてページ全体が一瞬白くなった後、新しいページが表示されることです。

Ajax ($.post、$.get、$.getJson ...) は、ページを更新せずにサーバーに情報を送信する場合です。Google マップはその好例です。

于 2012-10-28T09:14:56.077 に答える
0

フォーム jQuery オブジェクトで serialize メソッドを呼び出しても、そのデータの JSON 表現は返されません。そのデータのクエリ文字列表現を返します。前述のように、サーバー側スクリプトを使用して、送信されたデータを解釈 (および操作) し、JSON としてファイルに保存する必要があります。

于 2012-10-28T09:12:33.537 に答える