0

こんにちは友人私はPhonegapを初めて使用し、PHPを使用して簡単なログインアプリケーションを作成しています。私は次のようなファイルの種類を持っています:

  1. index.html
  2. mob_login.php
  3. cordova.xml

だから私の問題は、Androidのphonegapでプログラムを実行すると、mob_login.phpファイルが機能しないことです。

  • index.htmlファイルでは、URLは「http://10.0.0.2/mob_login.php」であり、ローカルホスト上のPHPファイルです。電話ギャップでこのファイルにアクセスするにはどうすればよいですか。
  • そして、cordova.xmlファイルで、アクセス元を変更します= "http://10.0.0.2*"
  • ファイルを変更する場所とエラーを解決するにはどうすればよいですか。

私のindex.htmlファイルは:-

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PhoneGap Login</title>
    <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script>
    <script type="text/javascript" charset="utf-8" src="jquery-1.7.2.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="jquery.mobile-1.1.1.js"></script>

    <script type="text/javascript" charset="utf-8">
        function login() {
        $.support.cors = true;
        $.mobile.allowCrossDomainPages = true;

            $(document).ready(function() {
                              var user = $("#user")[0].value;
                              var pass = $("#pass")[0].value;

                              $("#message")[0].value = "In function "+user +"  "+ pass;                                      
                              $.ajax({
                                     type: "POST",
                                     url: "http://10.0.0.2/mob_login.php",
                                     data: "users"+user+"&pass="+pass,

                                     success: function(result){

                                     $("#message")[0].value = result;
                                     alert("Result "+result);
                                     }
                                     });
        });
                              }
        </script>



</head>

<body>
    <form>
        Username: <input type="text" size="25" id="user"/>
        <br />
        Password: <input type="text" size="25" id="pass"/>
        <br />
        <input type="text" size="25" id="message" value="error message" />
        <br />
        <input type="button" value="Submit" onclick="login()"/>
        </form>

</body>
</html>

そして私のmob_login.phpファイルは:-

<?php
$user = $_REQUEST['user'];
$pass = $_REQUEST['pass'];

if($pass == "123" && $user == "kirit"){
    echo "Login Sucsess";
} else {
    echo "Login Fail";
}
?>

そして私のcordova.xmlファイルは:-

<?xml version="1.0" encoding="utf-8"?>

<cordova>
    <access origin="http://10.0.0.2*"/> 
    <log level="DEBUG"/>
    <preference name="useBrowserHistory" value="false" />
</cordova>

これは私のファイルです。どうすれば問題を解決できますか。さまざまな方法で試してみてください。解決できません。バディが助けてくれますか?

4

2 に答える 2

1
u placed users in ajax code instead of "user=" try below code    


$.ajax({
                                 type: "POST",
                                 url: "http://ipaddress of ur system/JQuery/mob_login.php",
                                 data: "user="+user+"&pass="+pass,

                                 success: function(result){

                                 $("#message")[0].value = result;
                                 alert("Result "+result);
                                 }
                                 });
    });
于 2012-08-23T11:18:53.860 に答える
0

問題は、ドキュメントの読み込みが完了したときではなく、クリック時に AJAX 呼び出しを行う必要があることです。ここに 1 つの問題があります。

var user = $("#user")[0].value;
var pass = $("#pass")[0].value;

このコードはページが読み込まれたときに実行されますが、その瞬間、ユーザーとパスの入力は空の値になります。ログイン ボタンをクリックしたときにこの割り当てを行うには、コードを変更する必要があります。

さらに、「ready」リスナーを削除して、ログイン関数を次のように記述するだけです。

function login() {
    $.support.cors = true;
    $.mobile.allowCrossDomainPages = true;

    var user = $("#user").val();
    var pass = $("#pass").val();

    $("#message").text("In function "+user +"  "+ pass);                                      
    $.ajax({
        type: "POST",
        url: "http://10.0.0.2/mob_login.php",
        data: "users"+user+"&pass="+pass,

        success: function(result) {

            $("#message")[0].value = result;
            alert("Result "+result);
        }
    });
}

コードの問題は、ログイン関数が呼び出されたときに ready イベントがすでにディスパッチされているため、ajax リクエストがサーバーに送信されないことです。

お役に立てれば。すてきな一日を。

于 2012-08-20T14:35:37.333 に答える