2013-07-12 23 views
6

Kullanıcının bir popup penceresi gördüğü düğmelerini tıklatarak, üç "Bağlantı Ekle" düğmesinin 3 olduğunu gösteren bir test.php sayfam var. Pencerede bağlantıyı ekler. Bağlantı eklendiğinde, taban sayfası "Bağlantı ekle" düğmesinden yeni bağlantıyla köprüye dönüşür. Şimdi, bir ajax çağrısı kullanarak test.php'den links.php'ye kullanıcıdan aldığım yeni bağlantıyı geçmem gerekiyor. Links.php, bağlantıyı first.json adında başka bir dosyaya yazacak bir JSON koduna sahip olmalıdır. first.jason değişken ve link için anahtar değer çiftine sahip olacaktır. .json dosyasından daha sonra değeri almak ve bir dizi halinde yeniden oluşturmak, ilgili değişkeni güncellemek ve geri kaydetmek zorunda kalırdım.PHP dosyasından bir json dosyasına veri yazma

Şimdiye kadar var, test.php adresinden yeni bağlantıyı almayı başardım ve ajax çağrısı ile links.php aracılığıyla gönderebildim. Aynı zamanda aldığım ve görüntülediğim bağlantıyı da görüntüleyebiliyorum. Şimdi, bağlantıyı .json dosyasına anahtar bir vale çifti olarak kopyalamak istiyorum. Ben json için yeni ve bu konuda nasıl gidileceğini anlayamıyorum. Benim değişken $ p, links.php içinde link var.

Aynı şekilde herhangi bir işaretçi yardımcı olacaktır. Teşekkürler. Aşağıda

test.php benim kodudur:

<?php 
include 'test.php'; 
$p=$_REQUEST['q']; 
?> 
: Aşağıda
  <!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> 

değerini aldığında links.php kodudur (yani bağlantı) test.php ajax arama yoluyla gönderir

json_encode kullanarak json dosyasına yazabiliyorum. Şimdi linki .json dosyasından okumalı, ilgili değişkeni ilişkilendirmeli ve geri kaydetmeliydim. Bunun için nasıl giderim?

+1


kodunuzu göster yararlıdır. – msanford

+0

PHP dosyasını i/o yapmak mı istiyorsunuz? javascript'inizi ve ajax'ınızı başarıyla tamamladığınıza benziyor. Bu bağlantı şu yönde gitmenizi sağlamalıdır: http://www.tutorialspoint.com/php/php_files.htm – MaxPRafferty

cevap

1

zaten json oluşturduk, o zaman basitçe yapabilirsiniz: Eğer json dosyası OLUŞTURMADIĞINDAN varsa

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

, sonradan fopen fonksiyonu ile oluşturabilir. Ayrıntılar http://www.php.net/manual/es/function.fopen.php

+0

json_encode kullanarak json dosyasına yazabiliyorum. Şimdi linki .json dosyasından okumalı, ilgili değişkeni ilişkilendirmeli ve geri kaydetmeliydim. Bunun için nasıl giderim? – user2521326

25

json yazmak için bakınız:

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

json okumak için:

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

Açıkçası bu hiç ama kontrol hiçbir hata yok.

0

İstediğiniz zaman JSON.stringify JSON şöyle jQuery ile istemci tarafında, tarih:

$jsondata = $_POST['dataForJson']; 
$writeJson = file_put_contents('data_en.json', $jsondata); 
: (json_encode gerek) olduğu gibi

var dataForJson = JSON.stringify(your_aray); 

Sonra sunucu tarafında yazmak Eğer birinin altında json dosyası verilerini eklemek istiyorsanız

2

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)); 

}