Я делаю вызов AJAX с Jquery-autocomplete на веб-сайте WordPress (список аэропортов в качестве метки и идентификатор аэропорта в качестве значения).
Возвращается массив с меткой и идентификатором, но ввод не показывает ничего, как это было, когда я возвращал только один массив имен.
Источник данных:
function ajax_listings() {
global $wpdb;
//get names of all airports
$name = '%'.$wpdb->esc_like(stripslashes($_POST['name'])).'%';
$sql = "select airportid, completename
from _airports
where completename like %s";
$sql = $wpdb->prepare($sql, $name);
$results = $wpdb->get_results($sql);
$titles = array();
foreach( $results as $r ) {
$titles[] = array(
"label" => $r->completename,
"value" => $r->airportid
);
}
echo json_encode($titles);
die();
}
Мой вызов AJAX:
$('#start').autoComplete({
source: function(name, response) {
$.ajax({
type: 'POST',
dataType: 'json',
url: 'wp-admin/admin-ajax.php',
data: 'action=get_listing_names&name='+name,
dataType: 'json',
success: function( data ) {
response( $.map( data.d, function( item ) {
return {
label: item.label,
value: item.value
}
}));
}
});
},
select: function (event, ui) {
$('#start').val(ui.item.label); // display the selected text
$('#idstart').val(ui.item.value); // save selected id to hidden input
return false;
},
focus: function (event, ui) {
event.preventDefault();
$(this).val(ui.item.label);
}
});
Я хочу, чтобы при вводе текста отображалась только метка элементов в качестве предложений, но мне также нужен идентификатор аэропорта, чтобы сохранить его в скрытом вводе и использовать его позже.
Пример возвращаемого массивакогда я набираю «MON»:
[101] {label: "PLP, Captain Ramon Xatruch Airport, La Palma, Panama", value: "5841"}
[102] {label: "LTI, Altai Airport, Altai, Mongolia", value: "6370"}
...