javascript
  • php
  • mysql
  • ajax
  • cordova
  • 2014-08-27 121 views 1 likes 
    1

    我在论坛中搜索了任何帮助我,没有任何工作的东西......我试图在Phonegap上使用AJAX调用登录PHP文件一个远程服务器,但PHP文件不返回任何东西......我后我的代码:通过Phonegap,AJAX,PHP和mySQL登录不起作用

    的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调用并在$ _POST,$ _GET和$ _REQUEST的PHP文件,没有任何工作对我来说...

    谢谢你提前!我仍在努力,试图弄清楚什么是错误的,我的代码...

    编辑:

    中的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> 
    

    +0

    使用'的var_dump($数据[ “tr_adr_id”])'看看是否有变量..因为我认为有一个问题..你已经得到了子元素'$ data = $ row ['tr_adr_id'];'然后再次在'echo $ data [ “tr_adr_id”];'..我想你应该只是'echo $ data;' – 2014-08-27 13:25:39

    +0

    好!谢谢,我现在要试试这个! – 2014-08-27 13:27:09

    +0

    你的phonegap index.html页面是什么样子的? – 2014-08-27 13:28:22

    回答

    1

    你正在做的事情有点一切都布置的方式很难为你自己。以下是一些可帮助您修复代码的示例。

    请注意数据:{}的布局。注意成功的方式。

       $.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)); 
    
    +1

    非常感谢您的帮助!最后我可以修复它。该错误在查询中。我在SELECT中写入字段的名称时出错。现在工作完美! :) – 2014-08-28 07:00:39

    相关问题