|
|
|
| Столкнулся с такой сложной для меня задачей.
Помогите, пожалуйста, кто сталкивался с подобным или имеет большой опыт в программировании на PHP.
Есть некоторый динамически формирующийся элемент SELECT. Свое содержимое он берет в связной таблице БД. Предположим, что в некоторый момент элементов списка SELECT стало чрезмерно много, так что выбор элемента стал не удобен. Возникает необходимость сузить существующий огромный список элементов. Это можно сделать , например, осуществив фильтрацию элементов по названию. Т.е. я хочу получить такой список SELECT в котором можно до нажатия стрелочки выбора ввести пару символов, в результате чего в списке будут содержаться только элементы, имеющие в названии такой же порядок символов, что я и ввел.
Встречал подобное в Delphi и C-Builder, а как осуществить в PHP не имею представления ввиду двухнедельного опыта программирования на этом языке.
Привожу код, где хотелось бы получить подобную функцию:
<body>
<?php
include ("menu_top.php");
?>
<div align="center" class="StyleForHeader"> <p> <br> </p> <p> Добавление нового пользователя оборудования </p> </div>
<form action="/users_insert.php" method="post" name="form">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="11%" align="left" valign="baseline"> </td>
<td width="32%" align="left" valign="baseline">Ф.И.О. пользователя оборудования</td>
<td width="32%" align="left" valign="baseline"><input name="fio_user" type="text" size="50" maxlength="50" /></td>
<td width="25%" align="left" valign="baseline"> </td>
</tr>
<tr>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline"> </td>
</tr>
<tr>
<td align="left" valign="baseline"> </td>
<td align="left" valign="top">Контактная информация пользователя оборудования</td>
<td align="left" valign="baseline"><textarea name="contact" cols="50" rows="5"></textarea></td>
<td align="left" valign="baseline"> </td>
</tr>
<tr>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline"> </td>
</tr>
<tr>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline">Организация пользователя оборудования</td>
<td align="left" valign="baseline"><select name="id_org">
<?php
// Соединение с базой даных
require_once ("config.php");
$sql = "SELECT * FROM orgs";
$res = mysql_query($sql, $dbcon);
if(!$res) exit("Error in $sql : ". mysql_error());
while( $row = mysql_fetch_assoc($res) )
echo "<option value =\"$row[id_org]\">".htmlspecialchars($row['name_org'])."</option>\r\n";
?>
</select></td>
<td align="left" valign="baseline"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="38%" align="center" valign="baseline"> </td>
<td width="24%" align="center" valign="baseline"> </td>
<td width="38%" align="center" valign="baseline"> </td>
</tr>
<tr>
<td align="center" valign="baseline"> </td>
<td align="center" valign="baseline"><input name="submit" type="submit" value="Добавить пользователя" /></td>
<td align="center" valign="baseline"> </td>
</tr>
</table>
</form>
</body>
|
| |
|
|
|
|
|
|
|
для: romu4-
(05.05.2009 в 15:36)
| | autocomplete на js | |
|
|
|
|
|
|
|
для: mihdan
(06.05.2009 в 14:02)
| | Извините, я плохо знаком с JS.
Не могли бы Вы подробнее рассказать об этом "autocomplete", а то я в поиске не нашел подобного.
Существует ли готовый подобный элемент, чтобы его можно было его применить в моем случае? | |
|
|
|
|
|
|
|
для: romu4-
(06.05.2009 в 21:10)
| | >Извините, я плохо знаком с JS.
В том, или ином виде без него никак. Суть в том, что такой компонент (выражаясь дельфийским языком) надо тут писать самому. Получится так, как реализована подсказка слов при вводе в строку поиска в яндексе или гугле.
Я бы, сделал примерно так:
HTML/PHP
<input type="text" onpress="ShowList();"> - поле, где мы вводим первые символы
JAVA
Функция ShowList(); должна получить введенные символы, найти результат (сделав запрос к БД и т.д.), и вывести список, в котором пользователь может выбрать нужное значение. Это всё скорее всего придется делать используя AJAX.
Про Autocomplete тут:
http://www.linkexchanger.su/2008/39.html
только там раелизовано на jQuery (аналог AJAX) | |
|
|
|