将AJAX脚本转换为jQuery语法

时间:2015-11-16 03:21:24

标签: javascript php jquery html ajax

我有一个简单的AJAX脚本,当选择菜单选项时,会在PHP页面中查询数据库中的某些值,并将其插入到表单中的元素中。我已经被要求将其转换为jQuery语法,以使其与网站的其余部分保持一致,但对jQuery来说是新手,我会陷入困境。

此处是表单元素:



<div class="input-group col-xs-8">
  <select class="form-control" name="templateRef" id="templateRef" onchange="getTemplate(this.value)">
    <option value=""></option>
    <option value="123">Template A</option>
    <option value="456">Template A</option>
  </select>
</div>
&#13;
&#13;
&#13;

这是AJAX脚本:

&#13;
&#13;
< script type = "text/javascript" >
  function getTemplate(str) {
    if (str == "") {
      document.getElementById("messageBody").innerHTML = "";
      return;
    }
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var data = JSON.parse(xmlhttp.responseText);
        for (var i = 0; i < data.length; i++) {
          document.getElementById("messageBody").innerHTML = data[i].templateBody;
          document.getElementById("emailSubject").value = data[i].templateSubject;
        }
      }
    }
    xmlhttp.open("POST", "getTemplate?templateID=" + str, true);
    xmlhttp.send();
  } < /script>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

function getTemplate(str) {
    if (str == "") {
        document.getElementById("messageBody").innerHTML = "";
        return;
    }
    $.ajax({
        dataType: "json",
        url: "getTemplate?templateID=" + str,
        method: "POST",
        success: function(data) {
            for (var i = 0; i < data.length; i++) {
                document.getElementById("messageBody").innerHTML = data[i].templateBody;
                document.getElementById("emailSubject").value = data[i].templateSubject;
            }
        }
    });
}

答案 1 :(得分:0)

如果您希望所有代码都是jQuery样式:

$.ajax({
    method: 'POST', 
    url: 'getTemplate?templateID=' + str,
    dataType: 'json'
}).done(function(data) {
    $(data).each(function() {
        $("#messageBody").html(this.templateBody);
        $("#emailSubject").val(this.templateSubject);
    });
});