2013-09-26 136 views
0

我有一個簡單的腳本,在阿賈克斯,我想根據價值來獲取返回並進行處理:如何捕獲AJAX響應?

if (xmlhttp.readyState==4) { 

    if (xmlhttp.responseText == "not available") { 
     document.write("not available"); 
    } 

} 

同時,我想這一點,它的工作:

if (xmlhttp.readyState==4) { 

    document.write(xmlhttp.responseText); 

} 

我在做什麼錯?


謝謝您的回覆。這是我目前的域名可用性檢查腳本的偉大工程:

<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $('#dtype').change(function() { 
        var opt = $('#domain').val(); 
        $.ajax({ 
         type: "POST", 
         url: "testwhois.php", 
         data: 'd=' + opt, 
         success:function(data){ 
          $('#txtHint'). html(data); 
         } 
        }); 
       }); 
      }); 
     </script> 
    </head> 
<body> 
<form> Domain name : <input type="text" name="domain" id="domain"> <input type="radio" name="dtype" id="dtype" value="new">New <input type="radio" name="dtype" value="transfer">Transfer <span id="txtHint"></span> </form> 
</body> 
</html> 

不過,我想有兩件事情是:

  1. 預加載圖像(我有),而腳本工作在'txtHint'的地方顯示答案。

  2. 答案返回在「不可用」或可用的格式。」我想讓‘域’字段爲空,當回答返回爲‘不可用’的HTML代碼。

再次感謝

+2

去抓住已經Ajax的內置,像jQuery庫。這些天沒有人會從頭開始寫它。 –

+0

問題到底是什麼?如果你的第二個版本有效,你不能只用它嗎? – David

+0

正如@Diodeus所說,下載jQuery。它的文檔非常簡單易用,因爲它有很多例子。 – Victor

回答

2

原諒我,如果你知道這個了,但如果你不這樣做:

Ajax的數據發佈到外部php文件,它處理接收到的數據,併發送回答案如下:

文件#1:

<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $('#Sel').change(function() { 
        var opt = $(this).val(); 
        var someelse = 'Hello'; 
        var more_stuff = 'Goodbye'; 
        $.ajax({ 
         type: "POST", 
         url: "receiving_file.php", 
         data: 'selected_opt=' + opt + '&something_else=' +someelse+'&more_stuff='+more_stuff, 
         success:function(data){ 
          alert('This was sent back: ' + data); 
         } 
        }); 
       }); 
      }); 
     </script> 
    </head> 
<body> 

<select id = "Sel"> 
    <option value ="Song1">default value</option> 
    <option value ="Song2">Break on through</option> 
    <option value ="Song3">Time</option> 
    <option value ="Song4">Money</option> 
    <option value="Song5">Saucerful of Secrets</option> 
</select> 

文件#2:receiving_file.php

<?php 
    $recd = $_POST['selected_opt']; 
    echo 'You chose: ' . $recd; 

上面的示例的工作原理。如果您將其複製/粘貼到兩個文件中,您將看到AJAX正在運行。當然,服務器端腳本是用PHP編寫的,所以你的服務器需要處理它。如有必要,請下載XAMPP並將其安裝在本地計算機上。請將這兩個文件的文件夾htdocs,並在瀏覽器地址欄中輸入:

http://localhost/whatever_you_called_the_first_page.php 

正如你所看到的,它是更簡單使用jQuery編寫AJAX代碼。所需要的只是jQuery庫(通常在頭標記中,如上面的代碼示例中所示)和AJAX代碼塊。

下面是其他一些例子來研究:

More complicated example

Populate dropdown 2 based on selection in dropdown 1

+0

感謝您的回覆。這是我目前的HTML腳本,效果很好。 – Subhendu