Php SmartyStreets云API实现

Php SmartyStreets云API实现,php,ajax,smartystreets,Php,Ajax,Smartystreets,我编写了一个简单的API来使用SmartyStreets API验证地址。我目前有一个免费的帐户与他们做测试 API可以按原样工作,但我想实现另外两个特性。 1-在表单中自动完成地址和填充值。 2-使用Ajax,这样页面允许用户键入地址,将请求发送到SmartStreets,获取响应,并将结果与表单一起显示(这次为空),以允许用户输入另一个addess。这是我写的代码 我的问题是:是否可以使用此脚本实现自动完成,并使其提交到同一页面,并在提交后显示表单以进行第二次查找?如果可能的话,我只需要一个

我编写了一个简单的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能够正常工作,我的老板就不在乎这些特性,所以我就这样离开了。你是想做类似于[演示页面]的事情吗?