0

我编写了一个简单的 API 来使用 SmartyStreets API 验证地址。我目前在他们那里有一个免费帐户来进行测试。

API 按原样工作,但我想实现另外两个功能。1- 自动完成地址并在表单中填充值。2-使用Ajax,因此页面允许用户键入地址,将请求发送到SmartStreets,获取响应,并将结果与​​表单一起显示,这次为空,以允许用户输入另一个地址。这是我写的代码。

我的问题是:是否可以使用此脚本实现自动完成并使其提交到同一页面并在提交后显示表单以进行第二次查找?如果可能的话,我只需要一个指南或资源。谢谢!

<?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>

谢谢

4

0 回答 0