File name: callajax.php
- <?php
- $firstName = $_POST[firstName];
- $lastName = $_POST[lastName];
- echo("First Name: " . $firstName . " Last Name: " . $lastName);
- ?>
File name: index.php
- <!DOCTYPE html>
- <html>
- <head>
- <title>Submit a form via AJAX</title>
- <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.css" />
- <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
- <script src="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.js"></script>
- </head>
- <body>
- <script>
- function onSuccess(data, status)
- {
- data = $.trim(data);
- $("#notification").text(data);
- }
- function onError(data, status)
- {
- // handle an error
- }
- $(document).ready(function() {
- $("#submit").click(function(){
- var formData = $("#callAjaxForm").serialize();
- $.ajax({
- type: "POST",
- url: "callajax.php",
- cache: false,
- data: formData,
- success: onSuccess,
- error: onError
- });
- return false;
- });
- });
- </script>
- <!-- call ajax page -->
- <div data-role="page" id="callAjaxPage">
- <div data-role="header">
- <h1>Call Ajax</h1>
- </div>
- <div data-role="content">
- <form id="callAjaxForm">
- <div data-role="fieldcontain">
- <label for="firstName">First Name</label>
- <input type="text" name="firstName" id="firstName" value="" />
- <label for="lastName">Last Name</label>
- <input type="text" name="lastName" id="lastName" value="" />
- <h3 id="notification"></h3>
- <button data-theme="b" id="submit" type="submit">Submit</button>
- </div>
- </form>
- </div>
- <div data-role="footer">
- <h1>GiantFlyingSaucer</h1>
- </div>
- </div>
- </body>
- </html>


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
jQuery mobile 表單提交
最近在做手機頁面用jQuery mobile開發,在用到form表單提交到時遇到了問題。
后台是用servlet進行處理的,想通過Servlet里面的重定向進行頁面跳轉發現在手機上根本沒有用,出現errorpage提示信息。
查詢網上資料以及jQuery mobile API得知 jQuery mobile表單提交默認是ajax提交,所以頁面跳轉寫在servlet里面根本就不會實現頁面跳轉功能。
於是我按照教程在form里面加了 data-ajax=“false”這一屬性,發現別說是頁面跳轉不行,就連后台的數據庫操作都做不了,報了500錯誤。
想了好久既然用ajax提交,那么就用ajax進行頁面跳轉
- <script type="text/javascript">
- $(document).ready(function () {
- $("#submitbtn").click(function(){
- cache: false,
- $.ajax({
- type: "POST",
- url: "feedback",
- data: $('#feedbackform').serialize(),
- success:function(data){
- $.mobile.changePage("success.html");
- }
- });
- });
- });
- </script>
- <form method="post" id="feedbackform">
- t;span style="white-space:pre"> </span>//相關表單元素
- <input type="button" id="submitbtn" value="提交">
- </form>
注意的是js里面的data
- $('#feedbackform').serialize()
是必須要有的,不然servlet里面用requset.getParameter接受的數據是null,ajax和后台成功交互后用changePage跳轉到成功后顯示的頁面。
