Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск в выпадающем динамическом меню SELECT записи по первым символам
 
 автор: romu4-   (05.05.2009 в 15:36)   письмо автору
 
 

Столкнулся с такой сложной для меня задачей.
Помогите, пожалуйста, кто сталкивался с подобным или имеет большой опыт в программировании на 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">&nbsp;</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">&nbsp;</td>
  </tr>
  <tr>
    <td align="left" valign="baseline">&nbsp;</td>
    <td align="left" valign="baseline">&nbsp;</td>
    <td align="left" valign="baseline">&nbsp;</td>
    <td align="left" valign="baseline">&nbsp;</td>
  </tr>
  <tr>
    <td align="left" valign="baseline">&nbsp;</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">&nbsp;</td>
  </tr>
  <tr>
    <td align="left" valign="baseline">&nbsp;</td>
    <td align="left" valign="baseline">&nbsp;</td>
    <td align="left" valign="baseline">&nbsp;</td>
    <td align="left" valign="baseline">&nbsp;</td>
  </tr>
  <tr>
    <td align="left" valign="baseline">&nbsp;</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">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="38%" align="center" valign="baseline">&nbsp;</td>
    <td width="24%" align="center" valign="baseline">&nbsp;</td>
    <td width="38%" align="center" valign="baseline">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" valign="baseline">&nbsp;</td>
    <td align="center" valign="baseline"><input name="submit" type="submit" value="Добавить пользователя" /></td>
    <td align="center" valign="baseline">&nbsp;</td>
  </tr>
</table>

</form>

</body>

  Ответить  
 
 автор: mihdan   (06.05.2009 в 14:02)   письмо автору
 
   для: romu4-   (05.05.2009 в 15:36)
 

autocomplete на js

  Ответить  
 
 автор: romu4-   (06.05.2009 в 21:10)   письмо автору
 
   для: mihdan   (06.05.2009 в 14:02)
 

Извините, я плохо знаком с JS.
Не могли бы Вы подробнее рассказать об этом "autocomplete", а то я в поиске не нашел подобного.
Существует ли готовый подобный элемент, чтобы его можно было его применить в моем случае?

  Ответить  
 
 автор: Zilog   (09.05.2009 в 02:05)   письмо автору
 
   для: 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)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования