Php parsinjson使用Javascript并将结果用作AJAX
嘿,伙计们,现在我正试图建立一个音乐探索网站,只是为了学习更多关于网页设计和编程的知识。这当然是一个挑战,但在stackoverflow的帮助下,我正在实现这一目标。无论如何……Php parsinjson使用Javascript并将结果用作AJAX,php,ajax,json,api,Php,Ajax,Json,Api,嘿,伙计们,现在我正试图建立一个音乐探索网站,只是为了学习更多关于网页设计和编程的知识。这当然是一个挑战,但在stackoverflow的帮助下,我正在实现这一目标。无论如何…… 我正在使用itunes的API返回艺术家专辑(最初尝试last.fm的API,但用户提交的附加内容太多)。iTunes只提供json格式的结果,我一点都不熟悉。这就是我想要实现的目标 当用户单击艺术家时,他们将看到该艺术家的相册。这需要在ajax中实现。我需要知道如何解析诸如专辑名称、发行日期等项。以下是指向的链接。
我正在使用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转换为数组/关联数组 如果我只是重复你已经知道的东西,而这一点帮助都没有,那么你可能需要更详细地了解你的问题是什么 编辑
在阅读了你对另一个答案的评论后,听起来你在尝试做以下事情:
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;
?>