Как я могу отправить данные формы из собственного мобильного приложения jquery на удаленный сервер? - PullRequest
0 голосов
/ 30 января 2012

Я использую следующие технологии: - jQuery Mobile 1.0.1 - Phonegap 1.3.0 - Xcode 4.2

Когда я пытаюсь отправить данные формы на удаленный сервер, я успешно использую приложение через браузер.

Когда я пытаюсь отправить данные формы на удаленный сервер, используя приложение, я не могу отправить.

Мне нужен плагин PhoneGap? Мне нужна настройка Xcode?

Следующий пример кода был запущен на iPhone Simulator 5.0:

<html> 
<head> 
    <title>Page Title</title> 
    <link rel="stylesheet" href="scripts/jquery.mobile-1.0.min.css" />
    <script type="text/javascript" src="scripts/jquery.js"></script>
    <script type="text/javascript" src="scripts/jquery.mobile-1.0.min.js"></script>

    <script>
        $(document).ready(function() {
                $('#loginForm').submit(function() {
                            $('#output').html('Connecting....');
                            var postTo = 'http://myserver/login.php';

                            $.post(postTo,{username: $('[name=username]').val() , password: $('[name=password]').val()} , 
                                function(data) {

                                if(data.message) {
                                    $('#output').html(data.message);
                                } else {
                                    $('#output').html('Could not connect');
                                }

                                },'json');

                return false;
                });
        });
        </script>

    </head> 

    <body> 

        <!-- Start of first page -->
        <div data-role="page" id="foo">

            <div data-role="header">
                <h1>Foo</h1>
            </div><!-- /header -->

            <div data-role="content">   

                <p id="output"></p>

                <form method="post" id="loginForm">
                Username: <input type="text" name="username"> <br /> <br />
                Password: <input type="password" name="password"> <br />

                <input type="submit" value="Login">

                </form>


            </div><!-- /content -->

            <div data-role="footer">
                <h4>Page Footer</h4>
            </div><!-- /header -->
        </div><!-- /page -->


    </body>

</html>

На моем сервере: (login.php)

    <?php
    if(isset($_POST['username']) and isset($_POST['password'])) {

            if ($_POST['username'] == 'test' and $_POST['password'] == 'test') {

            $data['success'] = true;
            $data['message'] = 'Login succesful';

            } else {

            $data['success'] = false;
            $data['message'] = 'Login failed';

            }

        // return json
        echo json_encode($data);

        }
?>

Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 17 октября 2012

Я не знаю, полезно ли это, но ваш PHP использует "и" в строке 4, но я думаю, что он должен использовать && для проверки того, что опубликованные переменные называются test.

0 голосов
/ 30 января 2012

Примеры PhoneGap и jQuery Mobile используют запрос AJAX, а не $.post.

В этой статье блога используется $.ajax и jQuery Mobile http://www.giantflyingsaucer.com/blog/?p=1948

Этот другой использует XMLHttpRequest:http://wiki.phonegap.com/w/page/42450600/PhoneGap%20Ajax%20Sample

Надеюсь, это направит вас в правильном направлении.

...