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'

form タグ内にある場合は 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

さて、ポストバックが問題を引き起こしていると思います。あなたがする必要があるのは...以下のように追加して、入力onclickを変更returnします

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

そして、最後にあなたのJavaScriptコードにreturn falseポストバックを防ぐためにaを追加してください

    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 に答える