Php SmartyStreets云API实现
我编写了一个简单的API来使用SmartyStreets API验证地址。我目前有一个免费的帐户与他们做测试 API可以按原样工作,但我想实现另外两个特性。 1-在表单中自动完成地址和填充值。 2-使用Ajax,这样页面允许用户键入地址,将请求发送到SmartStreets,获取响应,并将结果与表单一起显示(这次为空),以允许用户输入另一个addess。这是我写的代码Php SmartyStreets云API实现,php,ajax,smartystreets,Php,Ajax,Smartystreets,我编写了一个简单的API来使用SmartyStreets API验证地址。我目前有一个免费的帐户与他们做测试 API可以按原样工作,但我想实现另外两个特性。 1-在表单中自动完成地址和填充值。 2-使用Ajax,这样页面允许用户键入地址,将请求发送到SmartStreets,获取响应,并将结果与表单一起显示(这次为空),以允许用户输入另一个addess。这是我写的代码 我的问题是:是否可以使用此脚本实现自动完成,并使其提交到同一页面,并在提交后显示表单以进行第二次查找?如果可能的话,我只需要一个
我的问题是:是否可以使用此脚本实现自动完成,并使其提交到同一页面,并在提交后显示表单以进行第二次查找?如果可能的话,我只需要一个指南或资源。谢谢
<?php
if (isset($_GET['address']) && isset($_GET['city']) && isset($_GET['state'])) {
$address = urlencode($_GET['address']);
$city = urlencode($_GET['city']);
$state = urlencode($_GET['state']);
$json = file_get_contents('https://us-street.api.smartystreets.com/street-address?auth-id=auth_id_goes_here&auth-token=auth_token_goes_here&street='.$address.'&city='.$city.'&state='.$state.'&candidates=10');
$output = json_decode($json, $assoc=true);
//var_dump($output);
if (!empty($output)) {
echo 'This address is good!<br>';
echo $output[0]['delivery_line_1'].'<br>';
echo $output[0]['last_line'];
} else {
echo 'This address is bad!<br>';
echo $_GET['address'].'<br>';
echo $_GET['city'].' '.$_GET['state'];
}
} else {
?>
<html>
<head>
<title>SmartyStreets Address Verifier</title>
</head>
<body>
<script language="javascript">
function verify() {
if(!document.getElementsByName("address")[0].value) {
window.alert("Street Address is required!");
return false;
}
if(!document.getElementsByName("city")[0].value) {
window.alert("City cannot be empty!");
return false;
}
if(!document.getElementsByName("state")[0].value) {
window.alert("State cannot be empty!");
return false;
}
return true;
}
</script>
<h1>SmartyStreets Address Verifier</h1>
<hr>
<h3>Please enter the information below then click Verify.</h3>
<table><tr><td><table><tr><td>
<form action="index.php" onsubmit="return verify()" method="GET">
<table><tr><td><table><tr>
<td>Street Address: </td><td>
<input type="text" name="address" value="" /><font color="red">*</font>
</td></tr><tr><td>
City: </td><td>
<input type="text" name="city" value="" /><font color="red">*</font>
</td></tr><tr><td>
State: </td><td>
<input type="text" name="state" value="" /><font color="red">*</font>
</td></tr><tr><td>
<button type="reset" value="Reset">Reset</button>
</td><td>
<input type="submit" value="Verify" />
</td></tr>
</table>
</form>
<?php
}
?>
</td></tr></table></td></tr></table>
<div id="result"></div>
</body>
</html>
SmartyStreets地址验证程序
函数验证(){
如果(!document.getElementsByName(“地址”)[0].value){
窗口。警报(“需要街道地址!”);
返回false;
}
如果(!document.getElementsByName(“城市”)[0].value){
window.alert(“城市不能为空!”);
返回false;
}
如果(!document.getElementsByName(“状态”)[0].value){
window.alert(“状态不能为空!”);
返回false;
}
返回true;
}
SmartyStreets地址验证程序
请在下面输入信息,然后单击验证。
街道地址:
*
城市:
*
声明:
*
重置
谢谢请提问。我的问题是:是否可以使用此脚本实现自动完成,并将其提交到同一页面,并在提交后显示表单以进行第二次查找?如果可能的话,我只需要一个指南或资源。谢谢@HussamHallak,我在SmartyStreets工作。你已经试过实现那个脚本了吗?你这样做有什么问题吗?@SunSparc我实现了API,它可以工作,但我希望通过使用自动完成功能使它更好,并使页面提交给自己。此时,API工作正常,但没有这些功能。只要API能够正常工作,我的老板就不在乎这些特性,所以我就这样离开了。你是想做类似于[演示页面]的事情吗?