通过ajax显示php输出

通过ajax显示php输出,php,jquery,ajax,Php,Jquery,Ajax,我有一个php脚本来检查域是否可用。它与结果相呼应,有4种可能的输出 不可用 有空吗 已注册,但可以转让 不能转机 我正在尝试使用ajax将域和tld发送到脚本中。如何在html中回显脚本的输出? 据我所知,如果php给出结果,则可以显示消息,但不能提取结果并在html表单下显示 基本上这就是目前发生的情况: form -> $domain $tld -> AJAX -> GET -> domaincheck.php -> $dom = $_GET['domai

我有一个php脚本来检查域是否可用。它与结果相呼应,有4种可能的输出

  • 不可用
  • 有空吗
  • 已注册,但可以转让
  • 不能转机
  • 我正在尝试使用ajax将域和tld发送到脚本中。如何在html中回显脚本的输出? 据我所知,如果php给出结果,则可以显示消息,但不能提取结果并在html表单下显示

    基本上这就是目前发生的情况:

    form  ->  $domain $tld -> AJAX -> GET -> domaincheck.php -> $dom = $_GET['domain'];
     $tld = $_GET['tld']; -> $domain = $dom . $tld; -> TransIP API -> $result
    
    $result由这段php设置

    try
        {
            $availability = Transip_DomainService::checkAvailability($domain);
            switch($availability)
            {
          //check availability
                case Transip_DomainService::AVAILABILITY_INYOURACCOUNT:
                    $result = htmlspecialchars($domain)
                                . ' is not available.';
                break;
    
                case Transip_DomainService::AVAILABILITY_UNAVAILABLE:
                    $result = htmlspecialchars($domain)
                                . ' is not available for transfer.';
                break;
    
                case Transip_DomainService::AVAILABILITY_FREE:
                    $result = htmlspecialchars($domain)
                                . ' is available for registration.';
                break;
    
    
                case Transip_DomainService::AVAILABILITY_NOTFREE:
                    $result = htmlspecialchars($domain)
                                . ' is registered. If you are the owner,
                                        you could transfer it.';
                break;
            }
        }
        catch(SoapFault $e)
        {
        //error
            $result = 'An error occurred: ' . htmlspecialchars($e->getMessage());
        }
    }
    else
    {
        $domain = '';
        $result = '';
    }
    

    我绝对不是编程天才,更多的是一个随意的UI设计师。因此,任何帮助都是值得感谢的:)

    这是完全可能的,而且这些天发生在网络上

    基本上,您需要做的是让PHP脚本输出您想要的$result,然后让AJAX将其放入HTMLDOM中。下面是一个让您开始学习的示例:

    在PHP脚本的末尾,添加如下内容:

    echo json_encode(['result'=>$result]);
    die();
    
    这将获取$result变量,并将其放入一个数组中,其索引为'result'。然后将其编码为JSON格式,打印并终止脚本,因为脚本已经完成。(注意:除了json编码,还有其他方法可以做到这一点,但我发现它是最简单、最可扩展的解决方案)

    然后,使用如下javascript:

    $.ajax({
        url: "your_url/with_the_php_script.php",
        type: "GET",
        dataType: "json",
        data: { domain: "yummypizza.com", tld: "the_moon" },
        success: function(data){
            if('results' in data){
                $('#html_element_for_the_results').html(data.results);
            }
            else{
                alert("Uh oh, no results!");
            }
        },
        error: function(data){
            alert("Uh oh! AJAX error!");
        }
    })
    
    您可能希望将其保存在函数中,并在表单提交或按钮按下时触发它,但是您正计划让用户提交数据。总之,您有几个组件:您有您要发送它的url,您要发送的数据(看看它是一个具有域和tld属性的对象,PHP脚本中的两个$\u GET变量,这就是它要发送的数据)。然后,当它完成并成功的时候,它在成功中发挥作用


    使用jquery,您可以使用$(element.html('somethine here')格式替换页面上某些内容的内部html内容。因此,在希望显示$results的任何位置放置适当的ID,并在成功功能中选择它。

    这完全是可能的,而且现在在web上到处都可以看到

    基本上,您需要做的是让PHP脚本输出您想要的$result,然后让AJAX将其放入HTMLDOM中。下面是一个让您开始学习的示例:

    在PHP脚本的末尾,添加如下内容:

    echo json_encode(['result'=>$result]);
    die();
    
    这将获取$result变量,并将其放入一个数组中,其索引为'result'。然后将其编码为JSON格式,打印并终止脚本,因为脚本已经完成。(注意:除了json编码,还有其他方法可以做到这一点,但我发现它是最简单、最可扩展的解决方案)

    然后,使用如下javascript:

    $.ajax({
        url: "your_url/with_the_php_script.php",
        type: "GET",
        dataType: "json",
        data: { domain: "yummypizza.com", tld: "the_moon" },
        success: function(data){
            if('results' in data){
                $('#html_element_for_the_results').html(data.results);
            }
            else{
                alert("Uh oh, no results!");
            }
        },
        error: function(data){
            alert("Uh oh! AJAX error!");
        }
    })
    
    您可能希望将其保存在函数中,并在表单提交或按钮按下时触发它,但是您正计划让用户提交数据。总之,您有几个组件:您有您要发送它的url,您要发送的数据(看看它是一个具有域和tld属性的对象,PHP脚本中的两个$\u GET变量,这就是它要发送的数据)。然后,当它完成并成功的时候,它在成功中发挥作用

    使用jquery,您可以使用$(element.html('somethine here')格式替换页面上某些内容的内部html内容。因此,在希望显示$results的任何位置放置适当的ID,并在success函数中选择它