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

Форум PHP

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

 

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

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

тема: Элементы HTML формы - один ко многим.
 
 автор: paulluk   (29.07.2008 в 15:19)   письмо автору
 
 

На HTML-форме находится два "выпадающих списка", с помощью php-скрипта первый наполняется определенными значениями из таблицы БД, а каким образом можно реализовать, чтобы во время выбора значения в первом второй список наполнялся соответствующими значениями из другой таблицы???

  Ответить  
 
 автор: Axxil   (29.07.2008 в 15:25)   письмо автору
 
   для: paulluk   (29.07.2008 в 15:19)
 

Аяксом это делается.
На чистом js писать долго. Могу, если надо, на jquery показать.

  Ответить  
 
 автор: paulluk   (29.07.2008 в 15:27)   письмо автору
 
   для: Axxil   (29.07.2008 в 15:25)
 

Покажи пожалуйста!!!

  Ответить  
 
 автор: Axxil   (29.07.2008 в 15:35)   письмо автору
1.8 Кб
 
   для: paulluk   (29.07.2008 в 15:27)
 

Клиентский код. На коленке написал, не тестил. Пример классический, города по стране.
<html>
<head>
<script src="jquery.js"></script>
$(document).ready(function(){
  $('#country').change(function(){
    var country_id = this.options[this.selectedIndex].value;
    loadCitiestList(country_id);
  })
})
function loadCitiesList(country_id){
  $.getJSON('getCitiesList.php',
           {country_id:country_id},
           function(data){
             var str = '<select name="city">';
             $.each(data,function(i,n){
               str += '<option value="'+i+'">'+n+'</option>';
             })
             str += '</select>';
             $('#country').append(str);
           })  
}
</head>
<body>
<select id="country">
  <option>USA</option>
  <option>Canada</option>
</select>
</body>
</html>


Далее надо нам заиметь преобразователь php array -> json . Есть куча методов, но я вытащил функцию из класса Д. Котерова (www.dklab.ru) и получил соотетствующий класс helper_jquery.php (в аттаче). Этот метод хорош тем, что не требует никаких расширений к php

Теперь есть всё для написания серверной стороны (файл getCitiesList.php):
<?
  
require_once "helper_jquery.php";
  
$jHelper = new jquery_helper();
  
// Функция выдаёт массив городов (из БД) в виде array(1=>'New York',2=>'Atlanta')
  // Где гключ - id города в справочнике.
  
$list getCitiesListByCountryId($_REQUEST['country_id']);
  
// преобразовываем php массив в JSON вид и возвращаем его обратно в Front end
  
echo $jHelper->php2js($list);
?>


Вот и всё. По аналогии можно реализовывать любые зависимые справочники

PS Для работоспособности, все файлы из этого примера должны лежать в одной папке. Или можно расставить пути самостоятельно.

  Ответить  
 
 автор: Axxil   (29.07.2008 в 16:37)   письмо автору
 
   для: Axxil   (29.07.2008 в 15:35)
 

готово.

  Ответить  
 
 автор: paulluk   (30.07.2008 в 17:06)   письмо автору
 
   для: Axxil   (29.07.2008 в 16:37)
 

Большое спасибо!!!

  Ответить  
 
 автор: mihdan   (30.07.2008 в 18:21)   письмо автору
 
   для: paulluk   (29.07.2008 в 15:19)
 

http://tigir.com/javascript_select.htm
http://xhtml.ru/2006/02/11/dynamic-select/

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

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