1. 程式人生 > >php中使用ajax進行前後端json數據交互

php中使用ajax進行前後端json數據交互

前端 array char 取數 方式 註冊界面 test 傳輸 created

(最近在學習ajax,所以想自己總結一下在PHP中如何使用ajax技術!)

一、ajax註意點:

  1、原理圖:(來自韓順平ajax視頻)

    技術分享圖片

    2、ajax返回數據類型:

      文本,json,xml

     (1)文本格式:

        

     (2)xml:

        

技術分享圖片
1 <?php
2     //告訴瀏覽器返回的是xml類型
3      header("Content-Type:text/xml;charset=utf-8");
4 
5     
6 
7 
8 ?>
View Code

      

      前端如何取出:

        xmlrequest.responseXml();//返回的是對象

      (3)json:

      json只是一種文本字符串,他是存儲在responseText屬性中。

二、實現(通過添加圖書案例來實現,由於題目主要是用json來傳輸,所以我選擇json格式傳輸,但這個案例用json實在是太勉強了):

  1、使用javascript來實現:

    前端註冊界面:

      當點擊提交按鈕時,會觸發addbook函數。

1 <form >
2         書名:<input id="bookname" type="text"><br>
3
價格:<input id="price" type="text"><br> 4 所屬類別:<input id="leibie" type="text"><br> 5 <input type="submit" value="提交" onclick="addbook()"> 6 <input type="reset" value="重置"> 7 </form>

   2、js代碼:

    

 1 class Book{
2 constructor(bookname,price,leibie){ 3 this.bookname=bookname; 4 this.price=price; 5 this.leibie=leibie; 6 } 7 8 9 } 10 function addbook() { 11 var bookname=$(‘#bookname‘).val(); 12 var price=$(‘#price‘).val(); 13 var leibie=$(‘#leibie‘).val(); 14 if(bookname===‘‘ || price===‘‘ || leibie===‘‘){ 15 alert("輸入不能為空"); 16 } 17 var book=new Book(bookname,price,leibie); 18 //在這裏,將book對象轉換成json類型字符串 19 var bookjson=JSON.stringify(book); 20 // alert(bookjson); 21 // console.log(bookjson); 22 //使用jquery創建ajax對象 23 var xml=$.ajax({ 24 //定義提交的方式 25 type: "POST", 26 //定義要提交的URL 27 url:‘addbook.php‘, 28 //定義提交的數據類型 29 dataType:‘json‘, 30 async:false, 31 //要傳遞的數據 32 data:{‘book‘:bookjson}, 33 //服務器處理成功後傳送回來的json格式的數據 34 success:function (ans) { 35 alert(JSON.parse(ans)); 36 } 37 } ); 38 }

    3、PHP處理數據:

    

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: monty
 5  * Date: 2018/10/29
 6  * Time: 11:58
 7  */
 8     $book=$_POST[‘book‘];
 9     //通過將json字符串解析為json對象數據
10     $bookjson=(array)json_decode($book);
11     $conn=@mysqli_connect(‘localhost‘,‘root‘,‘root‘,‘test‘) or die("獲取數據庫連接失敗!");
12     mysqli_query($conn,"set names ‘utf8‘");
13     $sql="insert into book(bookname,price,leibie) VALUES (‘{$bookjson["bookname"]}‘,‘{$bookjson["price"]}‘,‘{$bookjson["leibie"]}‘)";
14     @mysqli_query($conn,$sql);
15     //將返回數據轉碼為json字符串
16     $res=json_encode({"res":"success"});
17     echo $res;
18 ?>

php中使用ajax進行前後端json數據交互