2017-01-07 4 views
-1

AJAXを使用して.jsonファイルに新しいデータを書き込んで、.jsonファイルをPHPスクリプトを使用して追加データで更新する方法 次の項目がJSONファイルにあるとします。PHPスクリプトを使用して既存のjsonファイルに項目を追加する方法

[{"task":"get milk","done":false}, 
{"task":"get broccoli","done":false}, 
{"task":"bring rian","done":false}, 
{"task":"go to school","done":false}] 

今私はhtmlページ {"task":"buy milk","done":false}

から1つの以上のアイテムを追加したいそして、私のhtmlページは、jQueryのでは、PHPを介してこれを行うにはどのように

Task:<input type="text" id="task" placeholder="what needs to be done?"> 
    <input type="button" value="ADD TASK" id="button"> 

のように見えますか?

+0

NiyatiパテルからAJAX要求を参照することができます。 –

+1

確かに...提案のおかげでPraveen。私はこのサイトを初めて利用しています –

答えて

0

私は、最初の配列に変換します:

$array = json_decode('[{"task":"get milk","done":false}, 
    {"task":"get broccoli","done":false}, 
    {"task":"bring rian","done":false}, 
    {"task":"go to school","done":false}]', true); 

その後、アレイに新しい追加:

$array[] = array(
    "task" => $_REQUEST["task"], 
    "done" => false 
); 

をそして私は戻っJSONに変換します。

$json = json_encode($array); 

1つの問題は、実行中にtaskの値を正しく渡していないことです。あなたは入力にname属性を指定していない:

<input type="text" name="task" id="task" placeholder="what needs to be done?" /> 
//-----------------^^^^^^^^^^^ 

出力:http://ideone.com/G6yj5P

0

あなたはまた、getメソッドを使用することができ、ここでのポストのためのコードは、これを取得するためにフォームを送信使用することができますが。

PHP:

$tasks = json_decode(file_get_contents($taskFilePath), true); 
$tasks[] =array("task" => $_POST["task"], "done" => $_post["done"]); 
file_put_contents($taskFilePath, json_encode($tasks)); 
2

ここでは、最初のfile_get_contentsを使用して、すべてのコンテンツを取得することができます。

json_decodeを使用してその配列をデコードします。 1つのstdClassを作成し、匿名オブジェクトを作成し、AJAXリクエストを通過する値を割り当てます。

次の例は、配列の最後に新しいオブジェクトを作成して追加するのに役立ちます。単にfile_put_contentsがファイルに書き戻すことができます。

$array = json_decode('[{"task":"get milk","done":false}, 
    {"task":"get broccoli","done":false}, 
    {"task":"bring rian","done":false}, 
    {"task":"go to school","done":false}]', true); 
$object = new stdClass(); 
$object->task = "milk"; 
$object->done = "false"; 
$array[] = $object; 
$new_arr = json_encode($array); 

あなたは、あなたの質問に答えるの答えの一つを見つけた場合は、その答えを受け入れるようにダニボタンをクリックしてください、このhttps://jsfiddle.net/wvuu9ax6/

関連する問題