0

美好的一天,伙计们......

我是 phonegap 的新手,但我想尽可能多地学习。我目前正在开发一个基本应用程序,它从数据库中接收数据并必须将其输出到 phonegap 应用程序上。

到目前为止,我所做的如下:在普通浏览器上,一切都按预期工作,数据按预期显示。当我通过cmd运行ant blackberry load-simulator时,我可以在手机浏览器上获得与普通浏览器相同的结果。

现在问题来了,当我继续使用应用程序并尝试打开一个我想在其中显示数据的页面时,什么都没有显示,我不知道为什么。

基本上发生的情况是,用户单击链接转到文章页面articles.html,此页面与articles.js 有关系,它只是向php 文件articles.php 发送ajax 调用,该文件检索数据从文章表。

我怎样才能在应用程序而不是浏览器上查看数据?这是我所有的代码。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/script.js"></script>
    <script src="articles.js"></script>
    <title> Articles</title>
</head>
<body>
    <div class="app">

    <div id="heading" style="background: #dddddd repeat-x" >
       <center><img src="img/logo.png" height="90" width="340" border="ridged"/></center>
        </div>

<div class="content">


<a href="index.html" style="color: white; text-decoration: none"> <img src="img/back.png"width="50" value="Back" height="50"/> Back to home</a>
</div>
</div>

</body>

以上是我的articles.html

$(document).ready(function() {
$.ajax({
        type: 'POST',
        url: './articles.php',
        dataType: 'jsonp',
        jsonp: 'jsoncallback',
        timeout: 5000,
        success: function(data){alert(data[0].title);//this alerts the tittle of the 1st record
            $('.content').append("<br />");
            for (var i = 0, len = data.length; i < len; i++) {
                       var code = data[i].title;
                       var desc = data[i].content.substring(0,100);
                       $('.content').append(code+'<br />'+desc+'<br /><br />success');
                   }
        },
        error: function(data){alert(data[0].title);
            $('.content').append("<br />");
            for (var i = 0, len = data.length; i < len; i++) {
                       var code = data[i].title;
                       var desc = data[i].content.substring(0,100);
                       $('.content').append(code+'<br />'+desc+'<br /><br />error');
                   }
        }
    });
 });

以上是我的articles.js,它将ajax 调用发送到一个php 文件。

<?php
header('Content-type: application/json');

$server = "localhost";
$username = "root";
$password = "";
$database = "myDb";

$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$sql = "SELECT * FROM  articles ORDER BY article_id";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();

while($row = mysql_fetch_assoc($result)) {
    $records[] = $row;
}

mysql_close($con);
echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
?>

这是我的articles.php

任何建议或帮助将不胜感激。

4

1 回答 1

0

我相信您必须在 AJAX 代码中指定 PHP 文件的完整 url。将其更改url: './articles.php',为类似url: 'http://localhost/your_app_folder/your_php_file_ajax_processor.php'. 希望这可以帮助。

于 2016-07-27T00:11:12.803 回答