2012-01-30 73 views
0

我使用了以下技術: - jQuery Mobile的1.0.1 - PhoneGap的1.3.0 - Xcode的4.2如何將表單數據從原生jQuery移動應用程序發送到遠程服務器?

當我嘗試提交表單數據到遠程服務器,我使用的應用程序獲得成功通過瀏覽器。

當我嘗試使用應用程序本地提交表單數據到遠程服務器時,我無法發送。

我需要一些插件PhoneGap? 我需要一些設置Xcode?

下面的示例代碼是在iPhone模擬器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); 

     } 
?> 

沒有人有任何想法如何解決這個問題?

+0

當您提交表單時會發生什麼? AJAX回調是否運行?如果不是,請添加一個'error'回調來查看錯誤。 – Jasper 2012-01-30 08:18:51

回答

0

PhoneGap和jQuery Mobile示例都使用AJAX請求而非$.post

此博客entery使用$.ajax和jQuery Mobile的 http://www.giantflyingsaucer.com/blog/?p=1948

這本等人使用一個XMLHttpRequest: http://wiki.phonegap.com/w/page/42450600/PhoneGap%20Ajax%20Sample

希望這可以讓你在正確的方向。

+0

'$ .post'與'$ .ajax({type:'post'})是一樣的東西' – Jasper 2012-01-30 08:17:03

+0

是的,但我會試圖改變它以匹配giantflyingsauscer的例子,以確保100%。 – 2012-01-30 17:00:24

+0

謝謝你的文章的指示。 我測試了代碼並得到了401錯誤響應 我將繼續嘗試解決 感謝您的幫助 – sandrosss 2012-01-30 21:24:28

-4

我不知道這是否有幫助,但是您的PHP在第4行使用「和」,但我認爲應該使用& &來測試發佈的變量是否都稱爲測試。

+0

'和'是PHP中的公認邏輯運算符。 – KLee1 2012-10-16 22:21:43

+0

對不起,錯了。 **和**和** && **都是具有相同基本含義的邏輯運算符,只是不同的優先級。 – itsbruce 2012-10-16 22:23:00

相關問題