这是php脚本:
<?php
//this line is necessary to make JS and php communicate with json
//header("Content-type: text/javascript");
//$searchQuery = "facebook";
$searchQuery = $_GET['q'];
$googleUrl='http://www.google.com/search?q='.$searchQuery;
$googleSource = @file_get_contents($googleUrl);
$bingUrl = 'http://www.bing.com/search?q=' .$searchQuery.'&first=1';
$bingSource = @file_get_contents($bingUrl);
$bingGoogleArray = array($bingSource,$googleSource);
echo json_encode($bingGoogleArray);
//echo $googleSource;
?>
这是html页面:
<html>
<head>
<title>Test Ajax And Jquery</title>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'></script>
<script>
function ajaxTest() {
//var string = "<html><body><b>Hello World</b></body></html>";
//$('#test').html(string);
$.ajax({url:"testJqueryAjax.php?q=facebook" , success: function(result){
$('h1').empty();
//var data = JSON.parse(result);
var data = $.parseJSON(result);
$('p').html(data[1]);
//alert(data[1]);
}});
}
</script>
</head>
<body>
<div id="search" style="height:15%;">
<button onClick="ajaxTest()">Submit</button>
<h1>Loading</h1>
</div>
<p></p>
</body>
</html>
这个小小的Web应用程序的角色,php脚本在google和bing上搜索关键字,并返回包含bing搜索页面和google页面的html源的json编码数组。
在html页面上,我解析了从php脚本收到的json_encoded数组,并将data [i]复制到html标记中。
问题是当我将包含Bing搜索页面的data[0]
复制到html标记中时会显示结果,但是当我将包含Google搜索页面的data[1]
复制到html标记时,没有任何内容出现! :(
你可能会说$googleSource
是空的,但是当我从php脚本发送$ googleSource时它就可以了!
答案 0 :(得分:0)
我检查了你的来源,对我来说,$ googleSource为空。错误是:json_encode(): Invalid UTF-8 sequence in argument
所以试试这一行:
$googleSource = utf8_encode(@file_get_contents($googleUrl));