2013-07-12 20 views
6

3つの「リンクを追加」ボタンが3つあり、ユーザーがポップアップウィンドウを表示するボタンをクリックするとtest.phpページが表示されます。ウィンドウで、彼はリンクを追加します。リンクが追加されると、基本ページが[リンクの追加]ボタンから新しいリンクのハイパーリンクに変わります。これで、ユーザーから受け取った新しいリンクをtest.phpからlinks.phpにajax呼び出しを使って渡す必要があります。 Links.phpには、first.jsonという別のファイルへのリンクを書き込むためのJSONコードが必要です。 first.jasonには変数とリンクのキー値のペアがあります。私は後で.jsonファイルから値を取得し、配列に再構成し、対応する変数を更新して元に戻す必要があります。PHPファイルからjsonファイルにデータを書き込む

私はこれまでにtest.phpから新しいリンクを取得して、links.phpへのajax呼び出しによって同じリンクを送信することができました。私はまた、私が受け取ったリンクを表示することができ、同じことを確認しました。今、リンクを.jsonファイルにキーvaleのペアとしてコピーしたいと思います。私はjsonには新しく、それについてどうやって行くのか分かりません。 links.phpの私の変数$ pにはリンクがあります。

同じポインタを使用すると便利です。ありがとう。以下は

はtest.phpを中に私のコードです:

以下
  <!DOCTYPE html> 
     <html> 
     <body> 
     <div id="demos1"> 
    <button id="demo1" onclick="Link1()">Add Link-1</button> 
      <br> 
    </div> 
    <div id="demos2"> 
    <button id="demo2" onclick="Link2()">Add Link-2</button> 
      <br> 
    </div> 
    <div id="demos3"> 
    <button id="demo3" onclick="Link3()">Add Link-3</button> 
      <br> 
      </div> 
    <div id="txtHint"></div> 
    <script> 
      function Link1() 
      { 
      var demo1 = document.getElementById('demo1'); 
      var demos1 = document.getElementById('demos1'); 
      var value1 = prompt("Please Enter the Link"); 
      var link1 = document.createElement('a'); 
      link1.setAttribute('href', value1); 
      link1.innerHTML = "New Link1";        
      demo1.parentNode.removeChild(demo1); 
      demos1.appendChild(link1); 
      sendlink(value1); 
      } 
     function Link2() 
      { 
      var demo2 = document.getElementById('demo2'); 
      var demos2 = document.getElementById('demos2'); 
      var value2 = prompt("Please Enter the Link"); 
      var link2 = document.createElement('a'); 
      link2.setAttribute('href', value2); 
      link2.innerHTML = "New Link2"; 
      demo2.parentNode.removeChild(demo2); 
      demos2.appendChild(link2); 
      sendlink(value2); 
      } 
     function Link3() 
      { 
      var demo3 = document.getElementById('demo3'); 
      var demos3 = document.getElementById('demos3'); 
      var value3 = prompt("Please Enter the Link"); 
      var link3 = document.createElement('a'); 
      link3.setAttribute('href', value3); 
      link3.innerHTML = "New Link3"; 
      demo3.parentNode.removeChild(demo3); 
      demos3.appendChild(link3); 
      sendlink(value3); 
      } 
     function sendlink(str) 
     { 
      if (str.length==0) 
       { 
       document.getElementById("txtHint").innerHTML="hello"; 
       return; 
       } 
      if (window.XMLHttpRequest) 
       {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp=new XMLHttpRequest(); 
       } 
      else 
       {// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
      xmlhttp.onreadystatechange=function() 
       { 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 

       document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
       } 
       } 
      xmlhttp.open("GET","links.php?q="+str,true); 
      xmlhttp.send(); 
     } 
    </script> 
     </body> 

      </html> 

は、値(すなわち、リンク)を受信links.phpためのコードであるtest.phpをはAJAX呼び出しを通じて送信します。

<?php 
include 'test.php'; 
$p=$_REQUEST['q']; 
?> 

json_encodeを使用してjsonファイルに書き込むことができます。これで、.jsonファイルからリンクを読み込み、対応する変数に関連付けて保存し直す必要がありました。私はこれについてどうやって行くのですか?

+1

はあなたのコードを表示しています。 – msanford

+0

あなたはPHPファイルI/Oをお探しですか?あなたが正常にすべてのあなたのjavascriptとajaxを完了したように聞こえます。このリンクは、あなたがその方向に行くようにする必要があります:http://www.tutorialspoint.com/php/php_files.htm – MaxPRafferty

答えて

1

すでにあなたのJSONを作成している場合は、単にこれを行うことができます:あなたはJSONファイルを作成していないなら、あなたは、関数fopenでそれを作成することができ、

fwrite("yourjson.json",json_encode($yourvariablewithdata)) 

を。 JSONを書き込むには詳細http://www.php.net/manual/es/function.fopen.php

+0

json_encodeを使用してjsonファイルに書き込むことができます。これで、.jsonファイルからリンクを読み込み、対応する変数に関連付けて保存し直す必要がありました。私はこれについてどうやって行くのですか? – user2521326

25

を参照してください:

file_put_contents('filename.json', json_encode($p)); 

JSONを読むには:

$p = json_decode(file_get_contents('filename.json')); 

明らかにこれはすべてかかわらでチェックエラーもしません。

0

あなたは常にjQueryを使って、クライアント側のJSON.stringify JSONは、のようなので、することができますですよう

var dataForJson = JSON.stringify(your_aray); 

はその後、サーバー側で(json_encodeは不要)を、それを書かない:

$jsondata = $_POST['dataForJson']; 
$writeJson = file_put_contents('data_en.json', $jsondata); 
2

使用すると、1つ下のJSONファイルにデータを挿入したい場合に便利

function exportToJson() { 

    mysql_connect("localhost", "root", ""); 
    mysql_select_db("krasimir_benchmark");  

    $res = mysql_query("SELECT * FROM users ORDER BY id"); 
    $records = array(); 
    while($obj = mysql_fetch_object($res)) { 
     $records []= $obj; 
    } 
    file_put_contents("data.json", json_encode($records)); 

} 
関連する問題