2012-01-25 5 views
1

я сделать простой скрипт PHP, который получит название города по почтовому индексу с помощью Ajax мой Java-код«xmlResult.Result не определен» ошибка

<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

Alert/console.log 'xmlResult' в строке до ... im довольно уверен, что поможет вам решить вашу проблему .. – ManseUK

+0

«Alert/console.log xmlResult на линии до« это решение не работает –

+0

Если бы не предназначено для предоставления решения - оно предназначалось для вас ... Я предлагаю посмотреть инструмент под названием [firebug ] (http://getfirebug.com/) ... – ManseUK

ответ

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

Смежные вопросы