web-dev-qa-db-ja.com

JQueryを使用したJSONファイルへの簡単な保存

手に入れることができるすべての例を試してみましたが、ホストのJSONファイルにJSONデータを単純に保存することはできません。できる限りシンプルな保存方法から始めたいので、開始する場所があります。

私が手に入れたものは次のとおりです基本的に私はボタンを持っていますindex.htmlクリックするとデータがgeneral.jsonファイルに保存されます(index.htmlと同じ場所)。

<button id="savebtn">Save</button>

myscript.jsのidセレクターを使用して、これを行います。

$('#savebtn').click(function() {
                var saveit = $('#calendar').fullCalendar( 'clientEvents');

        var eventsholded = [];

    $.each(saveit, function(index,value) {
        var event = new Object();
        event.id = value.id;            
        event.start = value.start;
        event.end = value.end;
        event.title = value.title;
    event.allDay = value.allDay
        eventsholded.Push(event);
    }); 
    $.ajax
    ({
        type: "GET",
        dataType : 'json',
        async: false,
        url: 'general.json',
        data: JSON.stringify(eventsholded),
        success: function () {alert("Thanks!"); },
        failure: function() {alert("Error!");}
    });

ご覧のように、fullcalendarのイベントを保存します。この点まではうまく機能するため、これはあまり意味がありません。 画面JSON.stringify(eventsholded)でアラートを出す場合これが表示されます:

[{"start":"2014-01-07T08:30:00.000Z","end":"2014-01-07T12:30:00.000Z","title":"Pumukli Pista","allDay":false},{"start":"2014-01-11T13:30:00.000Z","end":"2014-01-11T18:30:00.000Z","title":"Fanic Catalin","allDay":false}]

これはサーバーに簡単、迅速、おそらく安全ではないが非常に簡単な方法で保存したいものですこれがどのように機能するかを理解できるようになりました。 jsonファイル。

$.ajax partは、上記のコードでは何もしません。 「エラー」も警告しません。残りのコードは期待どおりに機能します。

セキュリティは今では重要ではありません。仕組みを学びたいだけです。

完全な例のあるヘルプまたは有用なリンクに感謝します。ありがとう!

14
Laci

$.ajaxだけではjsonファイルは保存されません。urlプロパティをサーバー側スクリプト、つまりhttp://your.Host/save_json.phpに転送する必要があります。これはgeneral.jsonを作成し、その上に出力を書き込みます。何かのようなもの:

PHP:

<?php
$myFile = "general.json";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $_GET["data"];
fwrite($fh, $stringData);
fclose($fh)
?>

data呼び出しのajaxプロパティをdata: {data: JSON.stringify(eventsholded)}に変更して、GET変数にPHPから取得できる適切な名前を付ける必要もあります。

[〜#〜] jquery [〜#〜]

$.ajax
    ({
        type: "GET",
        dataType : 'json',
        async: false,
        url: 'http://your.Host/save_json.php',
        data: { data: JSON.stringify(eventsholded) },
        success: function () {alert("Thanks!"); },
        failure: function() {alert("Error!");}
    });
26
Yeray Diaz Diaz