Нет, так конечно не пойдет. Во-первых {return false}, это ничего не значащий мусор, и если бы даже было прописано в положенном месте, в параметрах события, то для div все равно не имело бы значения.
Во-вторых, возвращается набор, и это список, и уж если не выпадающий список, то или нумерованный, или маркированный список, но только не div.
Вот только мудрить с чем-то иным, игнорируя выпадающий список, не стоит. Со списком может возникать лишь одна проблема - если возвращается большой объем марок изделия, то конечно, в длинном списке вряд ли удобно делать выбор. В этом случае может потребоваться и еще один запрос, который будет выводить или фиксированные части этого набора, или выбранные по алфавиту. В общем это уже логика, которая зависит от данные, которых я не знаю.
Если не разбираетесь в JS, то подключите jQuery и используйте его. Использование его не означает наплевать на JS, jQuery не панацея, в сего лишь удобный инструмент, а знание первоисточника желательно всегда. Но что-то написать на jQuery проще, и понять
его методы не так сложно.
А в РНР хорошо разбираетесь? Вот простой пример. В нем нет вывода сообщений в случае, если поиск не вернет результата. Как вы это собираетесь выводить, это иной вопрос, и мной опущен. Главное в примере, это первичный запрос поля, которое присутствует всегда, и подгружаемый список, как результат второго запроса к ресурсу.
Второй запрос, то есть марок, в примере, это просто получить из массива по индексу (id) список. Финал диалога, это по id марки, получить описание ее (если у вас уточнение марки, то это надо полагать всего лишь уточнение, а не финал). Фактически же у вас будет три запроса ресурса - первый поиск по id, второй получение марок, третий финальный. Клиент при этом будет запрашивать сервер два раза.
<?
//имитатор результата первого запроса к ресурсу
$a = [
1 => [1=>'Марка 1-1','Марка 1-2','Марка 1-3'],
[4=>'Марка 2-1','Марка 2-2','Марка 2-3'],
[7=>'Марка 3-1','Марка 3-2','Марка 3-3']
];
$b = [
1 => 'Описание марки 1-1',
'Описание марки 1-2',
'Описание марки 1-3',
'Описание марки 2-1',
'Описание марки 2-2',
'Описание марки 2-3',
'Описание марки 3-1',
'Описание марки 3-2',
'Описание марки 3-3'
];
if($_POST) {
if($id = (int)current($_POST)) {
//запрос списка, первый запрос клиента
if(key($_POST)=='a' && array_key_exists($id, $a))
exit('<select id="b" onchange="getBrand(this.id,this.value)"><option value="">Уточните марку...</option>'.
implode(array_map(function($k, $v) {
return '<option value="'.$k.'">'.$v.'</option>';
}, array_keys($a[$id]), $a[$id])).'</select>');
//финал - вывод описания, второй запрос клиента
else if(array_key_exists($id, $b)) exit($b[$id]);
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
function getBrand(k, v) {
v *= 1;
if(v) {
$.post(location, k+'='+v, function(d) {
//получили список - добавили его на страницу
if(k=='a') $('#f').find('select').remove().end().append(d);
//иначе результат запроса марки
else $('#d').html(d)
})
} else alert('Значение не выбрано!')
}
</script>
</head>
<body>
<div id="f">
<input id="a" /> <button onclick="getBrand($('#a').attr('id'),$('#a').val())">Search</button>
</div>
<div id="d"></div>
</body>
</html>
Пример простой, думаю разобраться не сложно будет. НУ а "мясо на кости" можно нарастить при желании.