我制作了一个简单的php脚本,它使用ajax通过邮政编码获取城市名称 我的java代码是
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://jquery-xml2json-plugin.googlecode.com/svn/trunk/jquery.xml2json.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var initialPostal;
$('#postal').bind('keyup change',function(e) {
if(($("#postal").val().length==3 || $("#postal").val().length==6 || $("#postal").val().length==7) && $("#postal").val()!=initialPostal)
{
initialPostal=$("#postal").val();
$.get('citylookup.php?postal='+$("#postal").val(), function(xml){
var xmlResult = $.xml2json(xml);
$("#city").val(xmlResult.Result.City);
alert(xmlResult.Result.City);
}); } }); }); </script>
//这是我的HTML代码
<form id="form1" name="form1" method="post" action="">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Postal:</td>
<td><input type="text" name="postal" id="postal" /></td>
</tr>
<tr>
<td>City:</td>
<td><input type="text" name="city" id="city" /></td>
</tr>
</table>
我的citylookup.php页面代码已经听到了
<?php
$url = 'http://where.yahooapis.com/geocode?q='.$_GET['postal'].'&country=india';
$xml = simplexml_load_file($url);
foreach($xml as $result)
{
if($result->postal==$_GET['postal'])
{
$City = $result->city;
}
}
echo $City;
?>
它给我一个像
这样的错误Error: xmlResult.Result is undefined
Source File: http://localhost/postalcode/citylookup.html
Line: 17
任何解决方案?
答案 0 :(得分:0)
您的第一个问题是$City
变量未在foreach
块之前声明 - 因此您将在那里收到错误...
<br /> <b>Notice</b>: Undefined variable: City in <b>citylookup.php</b> on line <b>14</b><br />
尝试:
<?php
$url = 'http://where.yahooapis.com/geocode?q='.$_GET['postal'].'&country=india';
$xml = simplexml_load_file($url);
$City = "";
foreach($xml as $result)
{
if($result->postal==$_GET['postal'])
{
$City = $result->city;
}
}
echo $City;
?>
你的第二个问题是你的JavaScript中没有错误检查 - 即如果你输入一个未知的邮件,你会看到相同的错误 - 考虑检查返回值以确保实际返回有价值的东西。实际上你只是使用上面的PHP返回一个单词...而不是XML / JSON