Так что я должен что-то упустить. Я не могу извлечь zpid и zestimate никаких проблем, выполнив следующие действия:Zillow API получает адресные данные, используя PHP
$zdata->response->zpid; //zpid
$zdata->response->zestimate->amount; //zestimate
Но тогда, когда я пытаюсь что представляется очевидным эквивалент, чтобы получить часть адреса:
$zdata->response->address->street;
$zdata->response->address->city;
Ничего из этого не будет! Зачем?? Очевидно, я должен что-то упустить. Ниже мой весь код
<?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;
?>
Глядя на выходе XML, как показано на собственной документации Zillow, я слежу по той же схеме, чтобы попытаться получить на улицу, чтобы получить zestimate. Я не очень хорошо знаком с работой с XML, поэтому очень возможно, что я чего-то не хватает.
Так я получаю сообщение об ошибке в моей консоли, которая показывает следующее:
неперехваченного SyntaxError: Неожиданный маркер T
«т», кажется, первая буква улицы, которая вводится как он изменяется соответственно. Может быть, это может осветить проблему?
Я отправлю свой AJAX тоже, но я не знаю, почему в этом что-то не так. Как указано выше, я могу отображать ZPID и Zestimate просто отлично, только адрес не работает.
AJAX/JS:
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®</span></div><span id="zestimatePrice">'+retrieve+'</span><div id="zillowDisclaimer"><span>© Zillow, Inc., 2006-2014. Use is subject to <a href="http://www.zillow.com/corp/Terms.htm">Terms of Use</a></span><span>What’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;
}
Можете ли вы 'var_dump ($ zdata-> response);'? – Machavity
@Machavity $ vaddress = var_dump ($ zdata-> response); echo $ vaddress; Не удается. Я получаю это с помощью AJAX, поэтому он делает статус 4 или 200, не совсем уверен, как я могу получить более четкое сообщение об ошибке со стороны PHP. – Christine268
Это не то, как вы [используйте var_dump] (http://stackoverflow.com/questions/14743342/how-do-i-properly-use-print-r-or-var-dump).Что касается конца AJAX, используйте консоль браузера (F12), чтобы показать, что ответ AJAX – Machavity