Листинг файла index.php
<!DOCTYPE HTML>
<HTML>
<HEAD>
<title>Jquery UI autocomplete</title>
<meta charset="utf-8">
<link rel="stylesheet" href="jquery-ui.min.css">
<link rel="stylesheet" href="jquery-ui.theme.min.css">
<SCRIPT type="text/javascript" src="jquery-1.11.1.min.js"></SCRIPT>
<SCRIPT type="text/javascript" src="jquery-ui.min.js"></SCRIPT>
<SCRIPT type="text/javascript">
$(document).ready(function(){
$('#person').autocomplete({
source: "person_autocomplete.php",
minLength: 3,
select: function(event,ui) {
$("#pers_id").attr("value",ui.item.id);
$sel_person = ui.item.label;
},
});
});
</SCRIPT>
</HEAD>
<BODY>
<FORM action = "<?=$_SERVER['SCRIPT_NAME']?>" method = "post" onsubmit="submitted = true;">
<INPUT type = "text" readonly="readonly" size="8" id="pers_id" ><INPUT type="text" size="50" id="person" value="" oninput="if($sel_person != $(this).attr('value')) { $('#pers_id').attr('value', ''); }">
<SELECT id="">
<INPUT type = "text" size = "50" >
<BR>
<INPUT type = "submit" value = "Send" id = "sendData">
</FORM>
</BODY>
</HTML>
Листинг файла обработки AJAX-запроса person_autocomplete.php
<?
mysql_connect($sServer, $sUser, $sPass) or die("Не могу подключиться к базе данных\n\r".mysql_error());
mysql_select_db($sDb) or die("Не могу открыть базу данных\n\r".mysql_error());
mysql_query('SET NAMES utf8');
if (isset($_GET['term'])){
$returnArr = array();
$res = mysql_query("SELECT * FROM `tperson` WHERE `Name_rus` LIKE '".$_GET['term']."%'");
while($row = mysql_fetch_assoc($res)) {
$currval = array();
$currval['label'] = $row['Name_rus'];
$currval['id'] = $row['id'];
array_push($returnArr, $currval);
}
}
echo json_encode($returnArr);
?>
Ответ на Ваш вопрос в последнем цикле while:
1. формируем промежуточный массив c ФИО и ID.
2. добавляем его в результирующий
3. profit :)
Также в примере можете увидеть способ очистки поля ID при внесении изменений в INPUT с autocomplete