繁体   English   中英

如何从原生Android应用程序上的JS中的PHP获取数据?

[英]How to get data from php in JS on a native android app?

我正在开发一个跨平台应用程序,但是我的数据遇到了一些麻烦。

实际上,我有一个包含很多php的完整网站,并且我正在与Intel XDK一起制作该网站的本机应用程序。

但是,事情就是这样,我知道我可以在本机应用程序上执行php,所以我试图直接在服务器上执行一些脚本,并通过ajax请求取回结果。

这是代码:(JavaScript)

var games = location.search;
    var res = games.split("=");

    $.ajax({    //create an ajax request to a page that prints the address.
        url: "http://tonight-app.fr/php/mobile_app/getGamesLists.php",  //url for the address page
        data: {"name": res[1]},
        success: function(result){
            var games = result; //create a variable and give it the value of the response data
            var gamesSplit = games.split(";");
            for(i=0;i<gamesSplit.length;i++){
                var gamesSplit2 = gamesSplit[i].split(",");
                test(gamesSplit2[0]);
            }
        }
    });

    function test(gamesSplit2) {
        console.log(gamesSplit2);
        var ul = document.createElement("ul");
        ul.id = "email-list";
        ul.innerHTML = gamesSplit2;
        document.getElementById('test').appendChild(ul);
    }

这是服务器上的php(此地址在ajax的网址中提及)

<?php
require_once("connect_database.php");
mysqli_set_charset($con, "utf8");
$name = $_GET["name"];
$sql="SELECT * FROM `games`";
$reponse = mysqli_query($con, $sql);

while ($row = mysqli_fetch_array($reponse, MYSQL_NUM)) {
    if ($row[2] == $name) {
        echo $result = '
        <a href="gamesReceipes.php?id=',$row[0],'">
        <li class="unread clickable-row">
            <div class="name">
                ',$row[1],'
            </div>
            <div class="message">
                Voir la préparation
            </div>
        </li>;';
    }
}
echo $result;
?>

因此,为了解释,我正在执行我的PHP脚本,该脚本给了我$ result,并且应该在Ajax中显示此结果。

它可以在Intel XDK的仿真器上运行,但在我构建应用程序后却无法运行! (我的手机当然激活了4g)

显示器上应该像这样:

[ 这是显示器[1]

希望您能在这里了解我的问题...谢谢大家!

通过此链接:

https://software.intel.com/zh-CN/articles/cordova-whitelisting-with-intel-xdk-for-ajax-and-launching-external-apps

谢谢@OldGeeksGuide给我这个链接! 我只需要在intel xdk中将链接添加到我的脚本中就可以了! 谢谢 !

您似乎试图两次回声同一件事。 将数据返回到AJAX调用应该执行一次,并且您在脚本中要做的最后一件事。

<?php
require_once("connect_database.php");
mysqli_set_charset($con, "utf8");
$name = $_GET["name"];
$sql="SELECT * FROM `games`";
$reponse = mysqli_query($con, $sql);

// init the $result var
$result = '';


// incorrect parameter constant
//while ($row = mysqli_fetch_array($reponse, MYSQL_NUM)) {
while ($row = mysqli_fetch_array($reponse, MYSQLI_NUM)) {
    if ($row[2] == $name) {
        //echo $result = '
        $result .= '
        <a href="gamesReceipes.php?id=' . $row[0] . '">
        <li class="unread clickable-row">
            <div class="name">
                ' . $row[1] . '
            </div>
            <div class="message">
                Voir la préparation
            </div>
        </li>;';
    }
}
echo $result;
?>

您也可以简化此过程。

在将游戏name传递给此脚本时,您可以像这样将其作为搜索条件添加到查询中,然后删除许多不必要的处理。

<?php
    require_once("connect_database.php");
    mysqli_set_charset($con, "utf8");

    // init the $result var
    $result = '';

    if ( isset($_GET['name'] ) {    
        $name = $_GET["name"];
        $sql="SELECT * FROM `games` WHERE `name` = '$name'";
        $reponse = mysqli_query($con, $sql);

        // I assume there is only one ro w that contains this name
        // so the loop is not required now
        while ($row = mysqli_fetch_array($reponse, MYSQLI_NUM)) {

            $result .= '
                <a href="gamesReceipes.php?id=' . $row[0] . '">
                    <li class="unread clickable-row">
                       <div class="name">' . $row[1] . '</div>
                       <div class="message">Voir la préparation</div>
                    </li>;';
        }
    } else {
        $result = 'No name parameter passed';
    }
    echo $result;
    exit;
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM