这是我的jsonp代码,其中我从在线服务器获取数据,并希望在我的2个div中显示标题和描述。但是代码正在用ajax_reponse加载的最后一个内容替换我的第一个div。
function ajax_request() {
jsonp("http://example.com/jSonApi/json_data.php",
"ajax_response");
}
/**Response (Called when data has been retrieved)
*
* @param object data Javascript (JSON) data object received
* through <script> request
*/
function ajax_response(data) {
for(var key in data) {
document.getElementById("first").innerHTML=data[key];
}
}
function jsonp(url, callback)
{
if (url.indexOf("?") > -1) {
url += "&jsonp=";
}
else {
url += "?jsonp=";
}
url += callback + "&";
url += new Date().getTime().toString(); // prevent caching
var script = document.createElement("script");
script.setAttribute("src",url);
script.setAttribute("type","text/javascript");
document.getElementsByTagName('head')[0].appendChild(script);
}
这是我的PHP代码
<?php
// Connection to the database
include("connection.php");
$startQuery = mysql_query("select * from image_gallery where recid=474") or die (mysql_error());
if (mysql_num_rows($startQuery)>0){
$rs=mysql_fetch_array($startQuery);
$title = $rs["gallerytitle_en"];
$descp =trim(preg_replace('/\s\s+/', ' ', $rs["gallerydescp_en"]));
$jsonData=array("data_1" => $title , "data_2" => $descp);
}
mysql_free_result($startQuery);
echo $_REQUEST["jsonp"]."(".json_encode($jsonData).")";
?>
答案 0 :(得分:0)
这样做是有意义的,因为你的代码告诉它:
document.getElementById("first").innerHTML=data[key];
你应该为每个人:
for each(var key in data) {
document.getElementById("first").innerHTML=data[key];
}
您的代码说使用您从服务器获得的值替换innerHTML
。
如果您的投诉是响应是 LAST 响应,那么服务器正在缓存您的请求。