Как я могу работать на выходе JSONP в PhoneGap? - PullRequest
0 голосов
/ 23 августа 2011

Я работаю над проектом PhoneGap с Android.Я разработал страницу входа, на которой я хочу показать окно предупреждения для действительного и недействительного пользователя.Я использую PHP для проверки базы данных.

Это моя страница php:

<?php
    header('Content-type: application/json');

    $server = "localhost";
    $username = "root";
    $password = "";
    $database = "mymusic";

    $con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
    mysql_select_db($database, $con);
     $id=$_GET["id"];
     $pass=$_GET["password"];
    //$id='ram';
    //$pass='ram';
    $sql = "SELECT id, name,password FROM login where userid='$id' and password='$pass'";
    $result = mysql_query($sql) or die ("Query error: " . mysql_error());

    $records = array();

    while($row = mysql_fetch_assoc($result)) {
        $records[] = $row;
    }

    mysql_close($con);

    echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
    ?>

Это моя функция Java-скрипта:

 function onDeviceReady(){
        var output = $('#output');
        var id = document.getElementById('userid').value;
        var pass = document.getElementById('password').value;
       // webcam.set_api_url( 'test.php?filename=' + escape(filename));

        $.ajax({
            url: 'http://192.168.1.214/sample/dologin.php?id='+id+'&password='+pass,
            dataType: 'jsonp',
            jsonp: 'jsoncallback',
            timeout: 5000,
            success: function(data, status){
                console.log('entered success============');
                $.each(data, function(i,item){ 

                var logi=item.id;
                if(logi!=null)
                    alert("valid user");
                else
                    alert("invalid user");

                });

            },
            error: function(){
                console.log('entered success====================');
               output.text('There was an error loading the data.');
            }
        });
 }

Это не работает должным образомдля недействительного пользователя.Всякий раз, когда я ввожу правильное имя пользователя и пароль, он отображает окно сообщения действительного пользователя.Когда я ввожу неверное имя пользователя и пароль, он ничего не отображает.

Заранее спасибо ...

1 Ответ

2 голосов
/ 23 августа 2011

Попробуйте отладить это в браузере и, возможно, отправьте возвращенные данные jsonp на консоль из успешного вызова вашего ajax console.log(data).

Вполне возможно, что ваш jsonp возвращает некоторые данные, а не ноль ... даже если это просто undefined или пустая строка.Ваш условный, скорее всего, виновник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...