0

コンボボックスがあり、StateとZip_codeフィールドに入力したいのですが、動作していますが、各フィールドのState"NY11715"とZip_code"NY11715"に入力しています...State"NY"とZip_code11715に入力しようとしています。 。これを解決するのを手伝ってください

<select name="LookupCity" id="LookupCity" onchange="showZip(this.value)">
<option value="" <?php if (!(strcmp("", $_GET['City']))) {echo "selected=\"selected\"";} ?>>Select from menu</option>
<?php do { ?>
<option value="<?php echo $row_fmCity['City']?>"<?php if (!(strcmp($row_fmCity['City'], $_GET['City']))) {echo "selected=\"selected\"";} ?>><?php echo $row_fmCity['City']?></option>
<?php
} while ($row_fmCity = mysql_fetch_assoc($fmCity));
$rows = mysql_num_rows($fmCity);
if($rows > 0) {
mysql_data_seek($fmCity, 0);
$row_fmCity = mysql_fetch_assoc($fmCity); } ?> </select>

<a href="ZipLookup.php">select</a></td> 

</tr><tr valign="baseline">
<td nowrap="nowrap" align="right">State:</td>
<td><input type="text" name="State" id="State" placeholder="NY" value="<?php echo $_GET['State']; ?>" size="5"/>
<input type="text" name="Zip_Code" id="Zip_Code"placeholder="zip code" value="<?php echo $_GET['Zip']; ?>" size="10" /></td>





Ajax code


function showZip(str)
{
if (str=="")
  {
  document.getElementById("State").innerHTML="";
  document.getElementById("Zip_Code").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
   document.getElementById("State").value=xmlhttp.responseText;
   document.getElementById("Zip_Code").value=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","Getzip.php?q="+str,true);
xmlhttp.send();
}





PHP Code


<?php
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', 'root');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("Leadbook", $con);

$sql="SELECT * FROM Zip WHERE City = '".$q."'";

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
  {

  $State = $row['State'];
  $Zip_Code = $row['Zip Code'];

  }
echo $State;
echo $Zip_Code;

mysql_close($con);
?>
4

1 に答える 1

3

1. phpコードを変更して、都市と郵便番号の両方がコンマで区切られるようにします。

このコードを変更します。

echo $State;
echo $Zip_Code;

これに:

echo $State;
echo ",";
echo $Zip_Code;

2. javascriptを更新して、戻りテキストが2つの部分に分割され、尊重されるフィールドに到達するようにします。

このコードを変更します。

document.getElementById("State").value=xmlhttp.responseText;
document.getElementById("Zip_Code").value=xmlhttp.responseText;

これに:

var string = xmlhttp.responseText;
var array = string.split(',');
document.getElementById("State").value=array[0];
document.getElementById("Zip_Code").value=array[1];

これはあなたが要求したことをするはずです。

于 2013-03-07T16:32:53.420 に答える