javascript - 使用 Phonegap、AJAX、PHP 和 mySQL 登录无法正常工作

标签 javascript php mysql ajax cordova

我在论坛中搜索了任何对我有帮助的东西,但没有任何效果......我正在尝试使用 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));

关于javascript - 使用 Phonegap、AJAX、PHP 和 mySQL 登录无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25528109/

相关文章:

javascript - 使用Javascript将字符串(日期格式)转换为日期时间

php - 如何在没有表单的情况下使用 Post 方法

javascript - 使用 webpack.mix 编译 js 文件时,mix.scripts 在 laravel 5.5 上不起作用

mysql - 通过交换找到最快的速度

mysql查询先慢后快

javascript - 数组转换给出字符串而不是数组

javascript - 如何替换字符串中的所有字符?

php - 如何使用 PHP 确保 MySQL DB 表中值的唯一性 – 唯一键用例?

javascript - Nightwatch JS - IF Else IF 断言

php - 我如何在 Joomla 中设置内容类型?