0

我的代码如下

<script type="text/javascript">

function saveack()
{

  var raf=document.getElementById('find_raf').value;
  var phone=document.getElementById('update_phone').value;  
  var xmlhttp;
  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()
  {

     document.getElementById("res").innerHTML="<img  src='../images/ajax-loader-2.gif' />";
     if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
       alert("asd");
       document.getElementById("res").innerHTML=xmlhttp.responseText;
     }
  }
  xmlhttp.open("get","updateCustomerDetail.php?raf="+raf+"&phone="+phone,true);
  xmlhttp.send();
}

简而言之,我的 html 代码是

<form method="post" >
 <tr>
    <td align="right" width="50%"  bgcolor="#9FCAE9" style="font-weight:800; font-size:14px; color:#006;">RAF No.</td>
    <td width="50%" align="left" bgcolor="#E8F8FF" style="color:#006"><input type="text" style="border:none" name="find_raf" id="find_raf" onBlur="fetchDetails();" /><span id="result_raf"></span></td>
  </tr>
<tr>
    <td align="right"  bgcolor="#9FCAE9" style="font-weight:800; font-size:14px; color:#006;">Customer Phone</td>
    <td align="left" bgcolor="#E8F8FF" style="color:#006"><input type="text" style="border:none" size="30" name="update_phone" id="update_phone" /></td>
  </tr>
    <tr align="center">
        <td colspan="2"bgcolor="#E8F8FF" style="color:#006"> <input type="submit" name="update_raf" id="update_raf" value="update" onClick="saveack();" /><?=$success ?></td>
      </tr>
      <tr align="center">
      <td><div id="res"></div></td>
      </tr>
</form>

当我在 updateCustomerDetail.php 中回显 $_GET['raf'] 时,没有任何显示..任何人都可以帮助我到底哪里出错了..出于测试目的,我只是在 if (xmlhttp.readyState==4 && xmlhttp.status ==200)但警报没有到来

4

2 回答 2

0

只需使用输入type='button'而不是type='submit'

因为如果提交在表单标签中,则执行操作

您正在使用 ajax,因此无需采取任何措施。动作使页面刷新。

利用:

<input type="button" name="update_raf" id="update_raf"........

代替

<input type="submit" name="update_raf" id="update_raf"........

这是工作。经我测试。

于 2013-09-23T08:30:02.910 回答
0

好吧,我想回帖是导致问题的原因。您需要做的是...通过添加return如下内容来修改您的输入 onclick

<input type="submit" name="update_raf" id="update_raf" value="update" onClick="return saveack();" />

并在您的 javascript 代码末尾添加一个return false以防止回发

    function saveack() {
        var raf = document.getElementById('find_raf').value;
        var phone = document.getElementById('update_phone').value;
        var xmlhttp;
        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 () {

                document.getElementById("res").innerHTML = "<img  src='../images/ajax-loader-2.gif' />";
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                        alert("asd");
                        document.getElementById("res").innerHTML = xmlhttp.responseText;
                }
        }
        xmlhttp.open("get", "updateCustomerDetail.php?raf=" + raf + "&phone=" + phone, true);
        xmlhttp.send();
        return false;
}
于 2013-09-23T08:25:50.913 回答