首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP获取地址数据的Zillow API

使用PHP获取地址数据的Zillow API
EN

Stack Overflow用户
提问于 2016-02-26 02:56:25
回答 1查看 1.6K关注 0票数 0

所以我肯定遗漏了什么。我可以检索zpidz估测,这样做没有问题:

代码语言:javascript
复制
$zdata->response->zpid; //zpid
$zdata->response->zestimate->amount; //zestimate

但是,当我尝试检索地址的一部分时,似乎是显而易见的等价物:

代码语言:javascript
复制
$zdata->response->address->street;
$zdata->response->address->city;

都不管用!为什么??很明显我一定是漏掉了什么东西。下面是我的全部代码

代码语言:javascript
复制
<?php
    $zillow_id = '1234';
    $search = $_POST['address'];
    $citystate = $_POST['csz'];
    $address = urlencode($search);
    $citystatezip = urlencode($citystate);

    $url = "http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=".$zillow_id."&address=".$address."&citystatezip=".$citystatezip;
    $result = file_get_contents($url);
    $data = simplexml_load_string($result);

    $zpidNum = $data->response->results->result[0]->zpid;

    $zurl = "http://www.zillow.com/webservice/GetZestimate.htm?zws-id=".$zillow_id."&zpid=".$zpidNum;
    $zresult = file_get_contents($zurl);
    $zdata = simplexml_load_string($zresult);

    //echo $zdata->response->zestimate->amount;

    //$zestimate=$zdata->response->zestimate->amount;
    $zstreet=$zdata->response->address->street;
    echo $street;
?>

查看在Zillow自己的文档中看到的XML输出,我遵循相同的模式来尝试获取Z估测值。我不太熟悉XML的使用,所以很可能我遗漏了一些东西。

因此,我的控制台中出现了一个错误,它显示了以下内容:

未登录的SyntaxError:意想不到的令牌T

“T”似乎是被输入的街道上的第一个字母,因为它会相应地变化。也许这能给这个问题一些启示?

我也会发布我的AJAX,但是我不知道为什么会有问题。如前所述,我能够很好地显示ZPID和z估测,只有地址不工作。

AJAX/JS:

代码语言:javascript
复制
function validateAddress(){
    var address = document.getElementById('address').value;
    var csz = document.getElementById('city_state_zip').value;

    if (address == null || address == "" || csz == null || csz == "") {
        return false;
    }
    else{
        getZestimate(address,csz);
    }
}

function getZestimate(address,csz){
var xmlhttp = new XMLHttpRequest();

    var userdata = "address="+address+"&csz="+csz;

    xmlhttp.open("POST","../wp-content/themes/realhomes/submit_address.php",true);

    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            //retrieve = JSON.parse(xmlhttp.responseText);
              retrieve = xmlhttp.responseText;
            document.getElementById("zestimateArea").innerHTML = '<div id="zillowWrap"><a href="http://www.zillow.com"><img src="http://www.zillow.com/widgets/GetVersionedResource.htm?path=/static/logos/Zillowlogo_150x40.gif" width="150" height="40" alt="Zillow Real Estate Search" id="ZillowLogo" /></a><span id="zestimateTag">Zestimate&reg;</span></div><span id="zestimatePrice">'+retrieve+'</span><div id="zillowDisclaimer"><span>&copy; Zillow, Inc., 2006-2014. Use is subject to <a href="http://www.zillow.com/corp/Terms.htm">Terms of Use</a></span><span>What&rsquo;s a <a href="http://www.zillow.com/wikipages/What-is-a-Zestimate">Zestimate?</a>';
        }
        else{
            document.getElementById("zestimateArea").innerHTML = "Error!"
        }
    }

    xmlhttp.send(userdata);
    document.getElementById("zestimateArea").innerHTML = "Generating...";

    return false;
}
EN

回答 1

Stack Overflow用户

发布于 2016-02-28 00:40:22

因此,当我将AJAX作为最后一条寻求帮助的文章发布时,我还看到了这行代码:

代码语言:javascript
复制
retrieve = JSON.parse(xmlhttp.responseText);

正如Daedalus所解释的那样,当我检索整数时,这不是一个问题,而是在检索文本时出现了一个问题。当我试图在一个用JSON编码的数组中同时检索Z估测和地址时,我最初将这一行代码放入其中。当它不成功时,我后退一步,看看是否可以单独检索地址,但没有成功。对于这一行代码,我从来没有三思过,因为AJAX似乎仍然正常工作。

因此,结果令人困惑。

将这一行改为:

代码语言:javascript
复制
retrieve = xmlhttp.responseText;

让我成功地检索到了地址。

你不是有一些简单的错误会造成巨大的问题吗?回到为什么JSON编码和解析不起作用的问题,但这是另一个帖子的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35642576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档