91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

beego獲取ajax數據的實例

發布時間:2020-09-29 22:09:23 來源:腳本之家 閱讀:151 作者:Super_Ssssss 欄目:編程語言

1. 什么是AJAX

Asynchronous JavaScript And XML(異步 JavaScript 及 XML),是指一種創建交互式網頁應用的網頁開發技術

Ajax 是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。

2. 如何使用 AJAX

XMLHttpRequest 是 AJAX 的基礎。

XMLHttpRequest 用于在后臺與服務器交換數據。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。

使用AJAX大致分四步

1. 創建XMLHttpRequest 對象

//js代碼獲取XMLHttpRequest 對象(保存為util.js)
function getXmlHttpRequest() {
  var xhr;
  try {
    // Firefox, Opera 8.0+, Safari
    xhr = new XMLHttpRequest();
  } catch (e) {
    // Internet Explorer
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        alert("您的瀏覽器不支持AJAX!");
        return false;
      }
    }
  }
  return xhr;
}

2.注冊狀態回調函數(當XMLHttpRequest 對象的readyState每次發生變化時調用該回調函數)

//當xhr.readyState == 4時所有的步驟都已執行完畢
//當xhr.state == 200時表示已經正確執行
 xhr.onreadystatechange=function(){
  if(xhr.readyState == 4 && xhr.state == 200){
    alter("請求已全部執行,并且成功");
  }
}

3.建立與服務器的異步連接(默認為異步)

/**
 open(method,url,async)方法
 規定請求的類型、URL 以及是否異步處理請求。
 method:請求的類型;GET 或 POST
 url:相求處理請求的url
 async:true(異步)或 false(同步)
 通過time來保證,每次發送新的請求
*/
xhr.open("Post", "/detailsU?time=" + new Date().getTime());

4.發出異步請求

/**
 send方法中發送json格式的字符串
*/
xhr.send('{"Index":"'+index +'", "Change":"' + i +'"}');

通過以上四步就可以成功的發送請求了

附源碼:

{{range .PhoneDetails}}  
    <tr onclick="func1(this)">
      <th>{{.Id}}</th>
      <th>{{.Name}}</th>
      <th>{{.Price}}</th>
      <th>{{.Repertory}}</th>
      <th>
        <a href="">編輯
      </th>
      <script type="text/javascript" src="/static/js/util.js"></script>
      <script type="text/javascript">
        function func1(x) {
          var code = prompt("請輸入調整的庫存大小:");
          if(code != null && code != "") {
            var i = parseInt(code);
            if(isNaN(i)) {
              alert('輸入錯誤');
            } else {
              var xhr = getXmlHttpRequest();
              xhr.onreadystatechange = function() {
                if(xhr.readyState == 4 && xhr.state == 200) {
                  alter("請求已全部執行,并且成功");
                }
              }
              var index = x.rowIndex;
              xhr.open("Post", "/detailsU?time=" + new Date().getTime());
              xhr.send('{"Index":"' + index + '", "Change":"' + i + '"}');
              alert('修改成功');
            }
          } else {
            alert('輸入錯誤');
          }
        }
      </script>
    </tr>
    {{end}}

3. 在beego中處理AJAX的請求

1. 首先在models層的models.go中創建數據的結構

/**
 要與傳過來的json格式字符串對應
 '{"Index":"'+index +'", "Change":"' + i +'"}'
*/
type Object struct {
 Index string
 Change string
}

2. 注冊相應的路由

/**
 在main.go當中注冊相應的路由(注意與對應路由設置好)
 xhr.open("Post", "/detailsU?time=" + new Date().getTime());
 "Post:DoUpdate"用來注冊當Post方法請求該URL處理的函數
*/
beego.Router("/detailsU", &controllers.DetailController{}, "Post:DoUpdate")

3. 在controller中寫好相應的處理函數

/**
 在對應的函數中處理相應的請求
 json.Unmarshal(this.Ctx.Input.RequestBody, ob)
 通過json來解析穿過來的數據,并將數據存儲在ob對象中
 在app.conf中設置copyrequestbody = true
*/
func (this *DetailController) DoUpdate(){
    ob := &models.Object{}
    json.Unmarshal(this.Ctx.Input.RequestBody, ob)
    db, err := sql.Open("mysql", "用戶名:密碼@tcp(IP:3306)/數據庫名")
    result, err := db.Exec("UPDATE 數據表名 SET 字段= ? WHERE id = ?",ob.Change, ob.Index)
    if err != nil{
      beego.Error(err)
      return
    }else{
       fmt.Println(result)
    }
}

以上這篇beego獲取ajax數據的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

瑞金市| 遂宁市| 靖远县| 吉水县| 峡江县| 白山市| 陈巴尔虎旗| 康平县| 特克斯县| 固原市| 金堂县| 沂南县| 尚义县| 西青区| 仁化县| 梨树县| 理塘县| 碌曲县| 普陀区| 河南省| 和平县| 昭平县| 栾城县| 锡林浩特市| 枝江市| 阳江市| 安溪县| 齐齐哈尔市| 新化县| 潍坊市| 九江市| 呼和浩特市| 舞钢市| 肃宁县| 中卫市| 钟山县| 辽宁省| 中西区| 阳西县| 城步| 普宁市|