1. 程式人生 > >Ajax提交表單資料

Ajax提交表單資料

ajax的基本語法

$.ajax({
    type: "post",  //資料提交方式(post/get)
    url: "demo.php",  //提交到的url
    data: {"key1":"value1","key2":"value2"},//提交的資料
    dataType: "json",//返回的資料型別格式
    success: function(msg){
      //code...返回成功的回撥函式
    },
    error:function(msg){
      //code...返回失敗的回撥函式
    }
});

html端:

<!--要提交的表單-->
<form method="post" action="demo.php" id="formid" > <input type="text" name="username" id="username"/> <button id="submit" type="submit">submit</button> </form> <!--區域性更新的區域--> <div id="display"></div>

php服務端程式碼demo.php:

<?php
$username = $_POST
['username']; $data = "{username:'$username'}";//組合成json格式資料 echo json_encode($data);//返回json格式資料 ?>

html端的script程式碼:

<script>
    $(document).ready(function(){
        $("#submit").click(function(e){
            e.preventDefault();//阻止預設的表單提交
            username = $("#username").val();//獲取表單的輸入值
$.ajax({ type:"POST", url:"demo.php", data:{"username":username},//提交到demo.php的資料 dataType:"json",//回撥函式接收資料的格式 success:function(msg){ $("#display").empty();//清空 data = eval("("+msg+")");//將返回的json解析成json物件 $("#display").html("hello: "+data.username); console.log(msg); console.log(data); }, error:function(msg){ console.log("request fail:"+msg); } }); }); });
</script>

結果:
這裡寫圖片描述

控制檯console顯示的結果:
這裡寫圖片描述
只有轉成json物件格式才能才能用.value的形式獲取

改進,讓php直接返回json物件就無需轉換
json_encode()函式能夠把陣列直接轉成json物件
所以,php後端程式碼改寫為:

<?php
echo json_encode($_POST);//返回json物件格式資料
?>

html端ajax程式碼修改為:

$.ajax({
    type:"POST",
    url:"demo.php",
    data:{"username":username},//提交到demo.php的資料
    dataType:"json",//回撥函式接收資料的格式
    success:function(msg){
        $("#display").empty();//清空
        $("#display").html("hello: "+msg.username);
        console.log(msg);
    },
    error:function(msg){
        console.log("request fail:"+msg);
    }
});

這樣php後端一句程式碼搞定,不用自己去構造返回資料的json格式,而且script也不用把json字串格式轉成json物件
再看一下控制檯的輸出資訊:
這裡寫圖片描述


雖然不用再去構造返回資料的json格式,但是ajax請求時傳送的表單資料也還要自己去構造。想一想,如果表單資料有一萬個輸入值,那麼自己去構造的話。。。。
解決方法很簡單:只需改變$.ajax()內的data:值就行了

data:$('#formid').serialize(),//你的表單id
//或者
data:$('#formid').serializeArray()

用控制檯看看這兩者的區別(為了更直觀,我又加了一個input元素):
這裡寫圖片描述
可以看到.serialize()將表單要提交的內容序列化成一個類似URL的字串格式,而.serializeArray()則將表單內容序列化為一個json物件的結構

注意:php用includerequire引入前端頁面時,兩者是在同一個執行程式碼裡,即都是屬於主執行緒的。這時若用該前端頁面去ajax請求該php後端指令碼程式碼,會導致請求失敗。

參考資料:

相關推薦

ajax提交資料不跳轉

1.onsubmit form表單的onsubmit方法在submit執行之前提交表單 <script type="text/javascript"> function sub() { // jquery 表單提交 $("#formI

JS:AJAX提交資料

方法一、前臺通過物件傳遞引數,後臺通過物件的屬性獲取值 jsp程式碼: $.ajax({ type: "POST", url:"/manage/admin/addOrUpdate", data:{

Ajax提交資料

ajax的基本語法 $.ajax({ type: "post", //資料提交方式(post/get) url: "demo.php", //提交到的url data: {"key1":"value1","key2":"valu

AJax提交資料到後臺springmvc接收

第一種方法直接用serialize()方法function insert(){ $.ajax({ type:"POST", url:"$

ajax方式提交資料並判斷當前註冊使用者是否存在

專案的目錄結構 原始碼: regservlet.java package register; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; imp

ajax(原生JavaScript)非同步提交資料

採用ajax非同步方式,通過js獲取form中所有input、select等元件的值,將這些值組成Json格式,通過非同步的方式與伺服器端進行互動, 一般將表單資料傳送給伺服器端,伺服器端處理資料並返

利用ajax提交,實現資料前端後臺資料互動的完整流程演示

該演示需要用到  1 : json.jar(下載)                               2 : jquery.js(下載) 流程演示:1.點選“登入”按鈕,傳參到後臺                     2.後臺獲取資料,處理分析資料,利用JSO

jquery ajax提交form資料幾種方式小結 a標籤提交,input標籤提交 submit提交

方式一:舉個例子。 <a href="javascript:void(0)" id="click">點選</a> //jq獲取標籤,並且繫結單擊事件 $(“#click”).click(function (){ //點選後

Ajax SpringMVC 提交資料

Ajax 的寫法 function saveSplash() { var titleVal = $("#title").val(); var subTitleVal = $("#subTitle").val(); if (titleVal == null ||

ajax 提交,PHP處理提交資料

HTML頁面表單元素: <form id="frm" action="" method="post"> <input type="text" name="user" />

分針網—每日分享:ajax提交

print win -c 找不到 用戶 post請求 its -o block ajax提交表單在項目中常用,前臺無論是簡單的html、jsp或者是使用了easyui框架,提交表單都會使用到ajax,extjs框架其實也是使用了ajax只不過對其進行了封裝了,我們使用的時

ajax提交,並且可以支持文件上傳

ons 成功 引入 spl [0 ror bsp str 不能 當我們提交表單但是又不想要刷新頁面的時候就可以考慮使用ajax來實現提交功能,但是這有個局限就是當有文件上傳的時候是行不通的,下面借助於jquery.form可以很方便滿足我們的需求. 1.表單寫

關於ajax提交

send tap sent when lose child you photo oca 今天主要是四個問題: 1.表單頁面元素的獲取; 2.按鈕的值的獲取; 3.按鈕的值以變量提交; 4.表單的提交; 獲取表單元素時用的是事件委托的方法。{犯的錯誤:1、用獲取表格父級元

ajax提交

技術分享 分享 代碼 images log cnblogs 表單 mage 提交 直接上代碼: Add_Code_Form為表單的Id ajax提交表單

Ajax 提交【包括文件上傳】

color .ajax log clas multipart slim turn tex size 利用js插件實現 <script src="@Url.Content("~/js/layer/jquery.form.min.js")"></script&

input ,button, textarea 1)使用disabled , 2) 顯示值, 3) 提交. 4) jquery.form.js ajaxSubmit() 無刷新ajax提交.

成功 isa post key input 技術分享 and () 去除 1.使用disabled input , button textarea 可以 被 禁用, 禁用的效果 : 1) 上面的點擊事件無法使用 --- button : 下面的 oncli

C# Asp.net使用FormData對象實現ajax提交及上傳圖片

sync ext syn data .... error post req 序列化 1、html代碼: <form id="postForm"> 文件名:<input type="text" name="filename" />

jqyery+ajax 提交

數據 order event orm right url ger height pad 首先添加一個login.html 代碼如下: <title>$.Ajax()方法發送請求</title> <script type="text/

ajax 提交 原生js

都是 登錄 cnblogs == .cn 判斷 fun alt ons ajax在表單中常用,一般都是使用post方法,ajax請求:前臺提交數據→後臺查詢數據→返回給前臺 下面以post方法為例上代碼: <form action="login" method="p

織夢自定義ajax提交

不寫死任何東西,藉助jquery ajax提交dedecms自定義表單到後臺。 注意表單部分,此例只做為參考,實際專案中根據自己的情況酌情修改。 認真看下面例子中 紅色部分 <form action="/plus/diy.php" enctype="multipart/form-data" me