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 代码。

再次感谢。

4

1 回答 1

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:接收文件.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 代码块。

这里有一些其他的例子来研究:

更复杂的例子

根据下拉列表 1 中的选择填充下拉列表 2

于 2013-09-26T19:04:09.660 回答