日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 表单 同步,Jquery点击按钮 异步和同步提交表单

發布時間:2023/12/3 php 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 表单 同步,Jquery点击按钮 异步和同步提交表单 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在開發一個jsp學生信息管理系統,由于剛剛接觸jsp,遇到問題比較多,特此記錄與大家分享。

Jquery ajax提交表單到servlet示例

前臺部分代碼:

姓名學號
????

ajax提交表單代碼://增加學生,異步提交學生表單

$("#addStudents").click(function() {

$.ajax({

url: "addStudents.do",//要請求的服務器url

//這是一個對象,表示請求的參數,兩個參數:method=ajax&val=xxx,服務器可以通過request.getParameter()來獲取

//data:{method:"ajaxTest",val:value},

data: {

name: $("#name").val(),

studentId: $("#studentId").val(),

},

async: true, //是否為異步請求

cache: false, //是否緩存結果

type: "POST", //請求方式為POST

dataType: "json", //服務器返回的數據是什么類型

success: function(result){ //這個方法會在服務器執行成功是被調用 ,參數result就是服務器返回的值(現在是json類型)

if(result){

alert("true");

}else{

alert("false");

}

}

});

});

web.xml配置代碼:

This is the description of my J2EE component

This is the display name of my J2EE component

addStudents

org.cms.students.addStudents

addStudents

/addStudents.do

addStudents.java代碼(采用POST提交方式):public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

PrintWriter out = response.getWriter();

String name=request.getParameter("name");

System.out.println(name);

System.out.println("123456789");

out.print("false");

}

ajax提交表單

通過上面的配置后,我輸入學生姓名然后提交表單,但是在myeclipse的控制臺里并沒有打印出姓名和字符串“123456789”,然后我就開始了瘋狂的檢查,檢查了n遍,還是不知道錯誤出現在哪里,一次偶然的機會我發現了問題所在。我在ajax代碼塊后加了個alert()語句,奇跡出現了,瀏覽器彈出相應內容,myeclipse的控制臺里打印出姓名和字符串“123456789”,這讓我很是疑惑,在查閱大量博客和官方文檔后,我才明白一切都是JQuery ajax的同步和異步提交的原因。

先來了解下JQuery ajax方法:

異步的理解:當代碼執行到ajax部分時,它與ajax之后的外部代碼是一起執行的,假如此時有外部代碼要用到ajax中的返回值,而ajax的async屬性為true(即此時ajax為異步),那么后續的外部代碼是不可能能拿到ajax的返回值的,只有設置為同步即ajax的async屬性為true,執行完ajax部分時,再接著執行后續代碼時,才會在關系上產生連續性,則這樣才能拿到其返回值。

然后我就將async設置為false,問題真的解決了,但是還是不知道為什么添加了alert語句即使是異步也可以打印出姓名和字符串?

繼續查閱資料我自己的總結如下(歡迎各位大牛指點):

1、async:true時:當點擊提交按鈕時,執行點擊事件里的代碼語句,執行到ajax時,由于是異步執行,所以并不會阻塞后面語句的執行,因為后面沒有語句了,所以可能由于ajax還沒來得及執行完點擊事件就結束了,自然就沒有打印出姓名和字符串。如果在ajax后添加alert語句,點擊事件就會被阻塞到這里,這時ajax就有充足的時間執行,所以控制臺就能打印出姓名和字符串。我嘗試去除外層的點擊事件,直接執行ajax,這時不論同步或者異步都可以打印出姓名和字符串,可以證明我的猜想。

2、async:false時:當點擊提交按鈕時,也會執行點擊事件里的代碼語句,執行到ajax時,由于是同步執行,所以必須等ajax成功返回后才繼續執行后面的代碼,自然就能打印出姓名和字符串。

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的php 表单 同步,Jquery点击按钮 异步和同步提交表单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。