簡體   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