Php parsinjson使用Javascript并将结果用作AJAX

Php parsinjson使用Javascript并将结果用作AJAX,php,ajax,json,api,Php,Ajax,Json,Api,嘿,伙计们,现在我正试图建立一个音乐探索网站,只是为了学习更多关于网页设计和编程的知识。这当然是一个挑战,但在stackoverflow的帮助下,我正在实现这一目标。无论如何…… 我正在使用itunes的API返回艺术家专辑(最初尝试last.fm的API,但用户提交的附加内容太多)。iTunes只提供json格式的结果,我一点都不熟悉。这就是我想要实现的目标 当用户单击艺术家时,他们将看到该艺术家的相册。这需要在ajax中实现。我需要知道如何解析诸如专辑名称、发行日期等项。以下是指向的链接。

嘿,伙计们,现在我正试图建立一个音乐探索网站,只是为了学习更多关于网页设计和编程的知识。这当然是一个挑战,但在stackoverflow的帮助下,我正在实现这一目标。无论如何……

我正在使用itunes的API返回艺术家专辑(最初尝试last.fm的API,但用户提交的附加内容太多)。iTunes只提供json格式的结果,我一点都不熟悉。这就是我想要实现的目标

当用户单击艺术家时,他们将看到该艺术家的相册。这需要在ajax中实现。我需要知道如何解析诸如专辑名称、发行日期等项。以下是指向的链接。

任何帮助都将不胜感激。哦,我在网上做了一些研究,但是没有一个对我计划做的事情有任何意义

干杯,

Sam

您熟悉JavaScript对象和数组吗?因为这基本上就是JSON的全部。(并非居高临下;我只有在学习HTML时才能理解XML,而只有在学习JS之后才能理解JSON。)

一旦了解了JS对象/数组,如果要在PHP中使用JSON,就需要了解JS数组基本上与PHP数组相同,JS对象基本上与PHP关联数组相同

最后一部分是函数:当您获得JSON时,它可能只是一个字符串。如果您使用的是PHP5.2,则可以访问,它将JSON转换为数组/关联数组

如果我只是重复你已经知道的东西,而这一点帮助都没有,那么你可能需要更详细地了解你的问题是什么

编辑
在阅读了你对另一个答案的评论后,听起来你在尝试做以下事情:

  • 然后将JSON转换成PHP
  • 将该JSON从PHP发送到JavaScript
  • 使用JavaScript操作JSON 这是正确的吗?如果是的话,那么我之前所说的几乎都是无用的。你可能会想从一开始。您只需给它一个JSON的URL,它就会以字符串的形式返回JSON

    现在,如果您只是使用PHP获取它,以便可以直接将其发送到JavaScript,那么字符串就准备就绪了。只需
    echo
    以JS可以处理的方式将其输出:

    <script>
    var data = <?php echo $JSON ?>;
    </script>
    
    
    var数据=;
    

    请注意,最大的问题是它根本不做任何安全检查。您可能会很好,但请记住这一点。

    因为我还不完全清楚您对PHP的使用情况(无论您通常是如何引用页面,还是直接使用PHP操作json),这可能会有帮助,也可能没有帮助:

    页面(可能是用php生成的?)

    
    函数搜索()
    {
    var-xmlhttp;
    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)
    {
    var resp=JSON.parse(xmlhttp.responseText);
    document.getElementById(“结果”).innerHTML=“”;
    
    对于(var i=0;ithanks man,你帮了我很大的忙。现在我有了一个好的开始。我想我必须使用URL字符串将JSON发送到PHP!!如果我错了,请纠正我。@sam更新了我的答案。让我知道这是否更接近你真正想要做的。谢谢,我需要将JSON发送到PHP,然后从PHP返回到JavaScript。页面仅显示这就是当我已经有了JSON时如何解析。那么,解析不如ajax请求多?我只是在阅读我找到的一些资料,它解释了如何使用javascript解析JSON。现在我只是不知道如何将JSON导入我的PHP?你能帮我吗?我想你可能遇到了一个相同的问题(ajax限制了您可以从中提取数据)…有几种方法,一种是使用一个设置,其中您有一个相同的域php,它可以从第二个域中刮取内容[您知道怎么做吗?]我想这可能会对你有好处。好主意。我过去做过刮削,所以我会尝试一下,一旦我有了满意的结果,我会发布答案。干杯
    <html>
    <head>
    <script type="text/javascript">
    function search()
    {
    var xmlhttp;
    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)
        {
        var resp = JSON.parse(xmlhttp.responseText);
        document.getElementById("result").innerHTML="";
        for(var i=0;i<resp.results.length;i++){
            document.getElementById("result").innerHTML+=resp.results[i].trackName+'<br/>';
        }
        }
      }
    xmlhttp.open("GET","it_search.php?artist="+document.getElementById('search').value,true);
    xmlhttp.send();
    }
    </script>
    </head>
    <body>
    <div id="myDiv"><input type="text" id="search"/><br/>
    <button type="button" onClick="search()">search</button></div>
    <div id="result"></div>
    </body>
    </html>
    
    <?php
    header("content-type: application/x-javascript");
    $var=urlencode($_REQUEST["artist"]);
    $file=file_get_contents("http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch?term=".$var."&limit=20");
    echo $file;
    ?>