0

波纹管脚本在我的本地主机上运行,​​但在我的站点上不起作用。我只是在 jqueryMobile 列表格式中测试简单的 Json 脚本,知道有什么问题吗?

谢谢

HTML页面点击调用Ajax函数:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> 
    <link rel="stylesheet" href="protected/jQuery/jquery.mobile.structure-1.0.1.min.css" />
    <link rel="stylesheet" href="protected/themes/Green/red_theme.min.css" />
<script src="news_services/js/jquery.js"></script>
<script src="news_services/js/jquery.mobile-1.0rc1.min.js"></script>
<script type="text/javascript" src="protected/jsnM.js"> </script>
</head>
<body >
<div data-role="page" id="home" >
    <div data-role="header" >
        <h1>JSON testing</h1>
        <div data-role="controlgroup" data-type="horizontal"></div>
    </div>
    <div data-role="content">
        <p> Json testing</p>
    </div>
    <div data-role="footer">
        <a href="#getAll_JSON" onClick="jsn1()" data-role="button" data-inline="true" data-icon="info">call JSON</a>
    </div>
</div>
<div data-role="page" id="getAll_JSON">
    <div data-role="header" data-position="fixed" >
        <h1>Json format</h1>
        <div data-type="horizontal" >
            <a href="#home" data-role="button"  data-inline="true" data-icon="home">Home</a>
        </div>
    </div>
    <div data-role="content">
        <ul id="sitesList" data-role="listview" data-filter="true" data-split-icon="gear" >
        </ul>
    </div>
    <div data-role="footer" data-position="fixed"></div>
</div>
<div id="detailsPage" data-role="page" >
    <div data-role="header">
        <h1>info</h1>
        <div data-type="horizontal" >
            <a href="#home" data-role="button"  data-inline="true" data-icon="home">Home</a>
        </div>
    </div>
    <div data-role="content">
        <div id="sitesDetail" >
        </div>
    </div>
</div>
</body>
</html>

在这里调用 Ajax:

var areaID=0;

function jsn1(val)
{   
var url_Category="http://gonorth.co.il/protected/indexJSON.php?";

$.ajax({
    url: url_Category,
    type: "GET",
    data: 'No='+val+"&area="+areaID,
    dataType: "json",
    cache: false, 
    error: function () {
        alert('loading Ajax failure');
        } ,
    onFailure: function () {
        alert('Ajax Failure');
    } ,
     statusCode: {
        404: function() {
            alert("missing info");
        }   
    },
    success: function(result) {
            $('#sitesList li').remove();
        $.each(result.sites,function(index,dat){
            $("#sitesList").append(
                '<li>'+
                '<img src="images/'+dat.coupon_img+'" width=80/>' +
                '<p >Name: '+dat.coupon_name+'</p>'+
                '<p >info: '+dat.street+'</p>'+
                '<p >address:'+dat.coupon_tmp+'</p>'+
                '</li>'
            );
        });

        $('#sitesList').listview('refresh');        
    }
});
}

PHP结果:

<?php
    $arr = array();
        $arr[] =[
                "coupon_id" => '1',
                "coupon_img" => '1.jpg',
                "street" => 'long text', 
                "coupon_tmp" => 'Address', 
                "coupon_name" => 'Name'
                ];
echo '{"sites":'.json_encode($arr).'}';
?>
4

3 回答 3

0
<?php
    $arr = array();
        $arr[] =[
                "coupon_id" => '1',
                "coupon_img" => '1.jpg',
                "street" => 'long text', 
                "coupon_tmp" => 'Address', 
                "coupon_name" => 'Name'
                ];
        $res['sites']=$arr;
        echo json_encode($res);
?>
于 2013-05-18T03:39:53.930 回答
0

感谢所有的答案。问题是,我的 Loclahost 和 serevr 中的 Php 数组可能不同的 Php 版本,下一个 Php 数组在我的 LocalHost 中工作,但在服务器中没有工作

<?php
$arr = array();
    $arr[] =[
            "coupon_id" => '1',
            "coupon_img" => '1.jpg',
            "street" => 'long text', 
            "coupon_tmp" => 'Address', 
            "coupon_name" => 'Name'
            ];
echo '{"sites":'.json_encode($arr).'}';
?>

我把它改成

<?php
    $arr[] =array(
            "coupon_id" => '1',
            "coupon_img" => '1.jpg',
            "street" => 'long text', 
            "coupon_tmp" => 'Address', 
            "coupon_name" => 'Name'
            );
echo '{"sites":'.json_encode($arr).'}';
?>

它也可以在服务器上运行

于 2013-05-18T03:30:51.767 回答
0

当我访问此链接时:http://gonorth.co.il/protected/indexJSON.php,看起来您的 JSON 正在由您的 Web 服务器通过 PHP 解析器提供服务。您应该查看您的 Web 服务器的设置,并了解如何设置它,以便 JSON 文件将以application/json. 当前响应的内容类型为text/html,这很可能是因为它试图被 PHP 解析器解析,而解析器阻塞了语法或类似的东西,然后服务器呈现一个 html 错误页面。

于 2013-05-10T09:19:22.370 回答