Javascript 将数据从PHP文件写入json文件

Javascript 将数据从PHP文件写入json文件,javascript,ajax,json,Javascript,Ajax,Json,我有一个test.php页面,其中显示了三个“添加链接”按钮,单击这些按钮,用户会看到一个弹出窗口。在窗口中,他添加了链接。添加链接后,基本页将从“添加链接”按钮更改为具有新链接的超链接。现在,我必须使用ajax调用将从用户处收到的新链接从test.php传递到links.php。php必须有一个JSON代码才能将链接写入另一个名为first.JSON的文件。jason将有变量和链接的键值对。稍后,我必须从.json文件中检索该值,并将其重建为一个数组,更新相应的变量并将其保存回去 到目前为止,

我有一个test.php页面,其中显示了三个“添加链接”按钮,单击这些按钮,用户会看到一个弹出窗口。在窗口中,他添加了链接。添加链接后,基本页将从“添加链接”按钮更改为具有新链接的超链接。现在,我必须使用ajax调用将从用户处收到的新链接从test.php传递到links.php。php必须有一个JSON代码才能将链接写入另一个名为first.JSON的文件。jason将有变量和链接的键值对。稍后,我必须从.json文件中检索该值,并将其重建为一个数组,更新相应的变量并将其保存回去

到目前为止,我已经设法从test.php获得了新的链接,并且能够通过ajax调用将其发送到links.php。我还能够显示我收到的链接,并验证了相同的链接。现在,我想将链接作为密钥对复制到.json文件中。我是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>

添加链接-1

添加链接-2
添加链接-3
函数Link1() { var demo1=document.getElementById('demo1'); var demos1=document.getElementById('demos1'); var value1=提示(“请输入链接”); var link1=document.createElement('a'); link1.setAttribute('href',value1); link1.innerHTML=“新建link1”; demo1.parentNode.removeChild(demo1); demos1.appendChild(link1); sendlink(value1); } 函数Link2() { var demo2=document.getElementById('demo2'); var demos2=document.getElementById('demos2'); var value2=提示(“请输入链接”); var link2=document.createElement('a'); link2.setAttribute('href',value2); link2.innerHTML=“新建link2”; demo2.parentNode.removeChild(demo2); demos2.appendChild(link2); sendlink(value2); } 函数Link3() { var demo3=document.getElementById('demo3'); var demos3=document.getElementById('demos3'); var value3=提示(“请输入链接”); var link3=document.createElement('a'); link3.setAttribute('href',value3); link3.innerHTML=“新链接3”; demo3.parentNode.removeChild(demo3); demos3.appendChild(link3); sendlink(value3); } 函数sendlink(str) { 如果(str.length==0) { document.getElementById(“txtHint”).innerHTML=“hello”; 返回; } if(window.XMLHttpRequest) {//IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); } 其他的 {//IE6、IE5的代码 xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”); } xmlhttp.onreadystatechange=函数() { if(xmlhttp.readyState==4&&xmlhttp.status==200) { document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText; } } open(“GET”,“links.php?q=“+str,true”); xmlhttp.send(); }
下面是links.php的代码,它接收test.php通过ajax调用发送的值(即link):

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


我能够使用json_encode写入json文件。现在,我必须从.json文件中读取链接,将其与相应的变量相关联,然后将其保存回去。我该怎么做呢?

如果您已经创建了json,那么您只需执行以下操作:

fwrite("yourjson.json",json_encode($yourvariablewithdata))
如果尚未创建json文件,则可以使用fopen函数创建它。要编写json,请参阅详细信息:

file_put_contents('filename.json', json_encode($p));
$p = json_decode(file_get_contents('filename.json'));
要阅读json,请执行以下操作:

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

显然,这根本不会进行错误检查。

您可以始终使用JSON。使用jQuery在客户端对JSON进行字符串化,如下所示:

var dataForJson = JSON.stringify(your_aray);
然后在服务器端按原样编写(无需json_编码):


如果要在下面的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));

}

你想做PHP文件i/o吗?听起来您已经成功地完成了所有javascript和ajax。这个链接应该让您朝这个方向前进:我能够使用json_encode写入json文件。现在,我必须从.json文件中读取链接,将其与相应的变量相关联,然后将其保存回去。我该怎么办?