Ладно, представим что я это делаю.
Сначала мне нужна таблица в БД с именами и толкованиями (общая схема).
Код:
|
create table names (
id int,
name varchar(100),
gen enum('мальчик','девочка'),
legend varchar(4095),
primary key(id)
); |
Теперь мне надо вывести из нее массив с парой name => id
select id,name,gen+0 from names;
// тут конкретика как получить из запроса результат
$out=array();
while($row = $result->fetch_assoc())
$out[$row['gen']][$row['name']]=$row['id'];
то есть получим массив из 2-х элементов первого уровня (1 и 2), в каждом из которых будут массивы в виде пары имя - индекс. Имя первое, поскольку оно - аргумент, а искомое - индекс.
фича gen+0 превращает текст в индексе, если без +0, то вместо 1 и 2 будет мальчик и девочка. Может и так хорошо.
теперь надо отпостить этот массив в хтмл в процессе рендера страницы
<script>
var names=<?php echo json_encode($out);?>;
</script>
или непосредственно в ту функцию в виде проперти или там аргумента, которая ищет и качает.
Теперь идет интерфейс из которого поступает запрос - Анакин.
if(name in names[1])
var id = names[1][name]; // 1 == мальчик, 2 == девочка, если помните
else
throw 'Такого имени "'+name+'" человечество еще не придумало!';
Теперь надо сделать запрос на сервер. Реализация может быть какой угодно. Например
var url = location.host+'search.php/?id='+index;
var link = new XMLHttpRequest();
link.onreadystatechange=function() {
if (link.readyState==4 && link.status==200) {
update_legend(link.responseText);
}
document.body.style.cursor = "auto";
}
link.open('GET', url, true);
link.send();
document.body.style.cursor = "wait";
// update_legend() - функция которая знает куда сунуть пришедший ответ
search.php
<?php
if(isset($_GET['id'])){
$id=(int)$_GET['id'];
select legend from names where id=$id;
// бла-бла-бла, зависит от провайдера БД
echo json_encode($data);
}
готово.