我有一个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将其放入html-dom中。下面是一个让你开始的例子:
在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脚本中的两个$_GET变量,所以这就是它要发送的数据)。然后,当它完成并成功时,它就发挥了成功的作用。
使用jquery,您可以使用$(element).html("something here")格式来替换页面上某些内容的innerHTML内容。因此,将适当的ID放在您希望显示$results的任何位置,并在success函数中选择它。