使用json将php数组传递给javascript

时间:2015-01-13 14:19:29

标签: javascript php jquery html json

这是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时它就可以了!

1 个答案:

答案 0 :(得分:0)

我检查了你的来源,对我来说,$ googleSource为空。错误是:json_encode(): Invalid UTF-8 sequence in argument

所以试试这一行:

$googleSource = utf8_encode(@file_get_contents($googleUrl));