javascript
  • php
  • mysql
  • ajax
  • cordova
  • 2014-08-27 26 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

    相關問題