он каждый я пытаюсь сделать автозаполнение формы из моего SQL здесь код для index.php
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"
тип = «текст / JavaScript»>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
var ac_config = {
source: "database_cities.php",
select: function(event, ui){
$("#area").val(ui.item.area);
$("#city").val(ui.item.city);
$("#state").val(ui.item.state);
$("#zip").val(ui.item.zip);
},
minLength:1
};
$("#area").autocomplete(ac_config);
});
</script>
<form name="form" method="POST">
<p>
<label for="area">area</label>
<br />
<input type="text" name="area" id="area" value="" />
</p>
<p>
<label for="city">City</label>
<br />
<input type="text" name="city" id="city" value=""/>
</p>
<p>
<label for="state">State</label>
<br />
<input type="text" name="state" id="state" value="" />
</p>
<p>
<label for="zip">Zip</label><br />
<input type="hidden" name="zip" id="zip" value="" />
</p>
<p>
<input type="submit" value="store" />
</p>
</form>
и это database_cities.php
<?php
// Data could be pulled from a DB or other source
$conn = mysql_connect("localhost", "root", "") or die("Could Not Connect");
mysql_select_db("dependency");
$city_area=$_GET['area'];
$query = "SELECT * FROM cities WHERE city LIKE '$city_area%'";
$data = mysql_query($query);
while ($row = mysql_fetch_array($data,MYSQL_ASSOC)){$address = array(
array('city'=>$row['city'], state=>$row['state'], zip=>$row['postcode']), );
}
// Cleaning up the term
$term = trim(strip_tags($_GET['term']));
// Rudimentary search
$matches = array(); foreach($address as $city){ if(stripos($city['city'], $term) !== false){
// Add the necessary "value" and "label" fields and append to result set
$city['value'] = $city['city'];
$city['label'] = "{$city['city']}, {$city['state']} {$city['zip']}";
$matches[] = $city; } }
// Truncate, encode and return the results
$matches = array_slice($matches, 0, 5);
print json_encode($matches);
?>
я пытаюсь соединиться с базой данных MySQL, она подключена и работает, но проблема в том, что я просто получаю последнюю строку в моей базе данных, я не получаю никаких других полей, может кто-нибудь, пожалуйста, скажите мне, что мне нужно, чтобы получить все мои данные, когда я набираю в первом поле
Спасибо
Вы перезаписываете $address
переменная с каждой итерацией, а не добавление, как предполагалось.
$address = array();
while ($row = mysql_fetch_array($data, MYSQL_ASSOC)) {
$address[] = array(
'city' => $row['city'],
'state' => $row['state'],
'zip' => $row['postcode']
);
}
[]
Оператор позволяет PHP помещать новое значение в конец массива, автоматически увеличивая числовой ключ.
Также обратите внимание, что я процитировал state
а также zip
ключи. Вы, вероятно, получили уведомления об этом PHP.
Других решений пока нет …