使用Phonegap、AJAX、PHP和mySQL登录不起作用


Login with Phonegap, AJAX, PHP and mySQL not working

我在论坛上搜索了所有对我有帮助的东西,但都没有工作。。。我试图使用AJAX调用远程服务器中的PHP文件登录Phonegap,但PHP文件没有返回任何内容。。。我张贴我的代码:

AJAX调用:

$.ajax({
    type: "POST",
    data: 'userMail='+user+'&userPassword='+password,
    dataType : 'html',
    url : "http://www.eega.nl/app/login.php",
    crossDomain: true,
    async: false,
    success: function(data){
        if(data!='error'){
            window.localStorage["userId"] = data;
            location.href = "schedule.html";
        }else{
            alert("failed login");
            location.href = "index.html";
        }
    },
    error: function(){
        alert("error");
        window.open('schedule.html');
    }      
});

PHP文件:

<?php
  include 'connect.php';
  header('Access-Control-Allow-Origin:*'); 
  header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS, REQUEST');
  header('Content-Type: application/json; charset=utf-8');
  header('Access-Control-Max-Age: 3628800');
  $data = array();
  $userMail = $_POST["userMail"];
  $userPassword = $_POST["userPassword"];
  $cryptpass = md5($userPassword);
  $sql = "SELECT tr_adr_id FROM elo_users WHERE email = '" . $userMail . "' AND crypt = '" . $cryptpass . "'";
  //mysql_real_escape_string($userMail),
  //mysql_real_escape_string($cryptpass));
  $result = mysqli_query($sql);
  //if($data = mysql_fetch_array($result)){
  while($row = mysqli_fetch_array($result)) {
    $data = $row['tr_adr_id'];
  }
  echo $data["tr_adr_id"];
  mysqli_free_result($data);
  mysqli_close();
?>

我试着用POST和GET进行AJAX调用,并在PHP文件中用$_POST、$_GET和$_REQUEST进行调用,但这些都不起作用…

提前谢谢!我仍在努力找出代码中的错误。。。

编辑:

index.html:

<!DOCTYPE HTML>
<html>
<head>
    <meta name="viewport" content="width=320" user-scalable="no" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/bootstrap-theme.min.css">
    <link rel="stylesheet" href="css/docs.min.css">
    <link rel="stylesheet" href="css/jquery.mobile-1.4.3.min.css">
    <link rel="stylesheet" href="css/general.css">
    <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
    <script src="js/bootstrap.min.js"></script>  
    <script src="js/functions.js"></script>
    <title>EegaApp</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
</head>
<body>
    <script type="text/javascript" src="js/jquery.mobile-1.4.3.min.js"></script>
    <div id="eegaLogo">
        <img class="bottom" src="images/eega_logo_loading.jpg"/>
        <img class="top" src="images/eega_logo.jpg"/>
    </div>
    <a href="http://www.eega.nl/" data-mini="true" style="color:red; position: absolute; margin-left:35%; margin-top:43.5%; text-decoration:none;">www.eega.nl</a>
    <!--*********Login form********-->
    <form id="loginForm" class="form-signin" role="form" style="width:50%; text-align: center; margin-top: 55%; margin-left: 25%;" method="post">
        <input id="userMail" name="userMail" class="form-control" type="email" autofocus="" required="" placeholder="Email"></input>
        <input id="userPassword" name="userPassword" class="form-control" type="password" required="" placeholder="Password"></input>
        <div>
            <input type="checkbox" name="checkbox-0" id="checkbox-mini-0" class="custom" data-mini="true" />
            <label for="checkbox-mini-0">Remember me</label>
        </div>
        <button type="submit" data-mini="true" onClick="login()">Login</button>
    </form>
    <!--*********End form*********-->
    <!--THIS LINE IS JUST FOR TEST-->
    <a href="schedule.html">schedule</a>
    <!--*********Footer*********-->
    <div id="footer">
        <script>
            function openExternal(elem) {
                window.open(elem.href, "_system");
                return false; // Prevent execution of the default onClick handler 
            }
        </script>
        <a class="col-xs-4" href="http://9292.nl/#" target="_blank" onClick="javascript:return openExternal(this)"><img id="footer-icon" src="images/9292_icon.jpg" style="width: 60px; height: 60px;"/></a>
        <a class="col-xs-4" ><img id="footer-icon" src="images/maps_icon.jpg" style="width: 60px; height: 60px;"/></a>
        <a class="col-xs-4" ><img id="footer-icon" src="images/call_icon2.jpg" style="width: 60px; height: 60px;"/></a>
    </div>
    <!--********End footer*********-->
</body>

你做的事情对自己来说有点困难——一切都是这样安排的。这里有几个示例可以帮助您修复代码。

请注意数据:{}是如何布局的。注意成功是如何安排的。

                $.ajax({
                type: "GET",
                url: "../ajax.php",
                dataType: "json",
                data: {
                    type: "getLineComments",
                    saleId: $(this).attr('saleId'),
                    lineId: $(this).attr('lineId')
                },
                success: function (json) {
                    $content.empty();
                    $content.slideToggle(500, function () {
                    if(json.Row !== undefined && json.Row.length > 0)
                    {
                        for(var i=0;i < json.Row.length;i++)
                        {
                            var item = json.Row[i];
                            //console.log(item);
                            //console.log(item.REMARK_LIN);
                            $content.append("<li>" + item.REMARK_LIN + "</li>");
                        }
                    }
                    else
                    {
                        if(json.Row !== undefined)
                            $content.append("<li>" + json.Row.REMARK_LIN + "</li>");
                        else
                            $content.append("<li>No Comments</li>");
                    }
                    $header.text(function () {
                        //change text based on condition
                        return $content.is(":visible") ? "Collapse Line Remarks" : "Expand Line Remarks";
                    });
                });                 
                },
                error: function(e)
                {
                    console.log(e);
                }
            });

还有一件事会对您有很大帮助,那就是使用php函数json_encode-http://php.net/manual/en/function.json-encode.php

例如

echo json_encode(mysqli_fetch_array($result));