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

HTML+CSS+JavaScript

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

 

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

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

тема: Двойной выпадающий список
 
 автор: tourist   (17.12.2013 в 14:44)   письмо автору
 
 

Здравствуйте!
Подскажите, почему не работают скрипты? Не проявляется второй список.
Jquery работает, проверил.

catalog.php:
<html><head>
<title>Двойной выпадающий список</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery-2.0.3.min.js" ></script>
<script type="text/javascript">
  $(document).ready(function() {
  $("#id_fst").bind("change", function() {
    // AJAX - запрос
    $("#id_snd").load("select.php?id_catalog=" + $('#id_fst').val(),
    null, 
    $("#id_snd").attr("disabled", ""));
    })
  });
</script>
</head> 
<body>                                                                                                           
<?php
require_once("config.php");
//Формируем выпадающий список корневых разделов
$query"SELECT * FROM catalogs WHERE id_parent = 0 AND hide = 'show' ORDER BY pos";
$cat mysql_query($query);
if(!
$cat) exit("Ошибка извлечения разделов - ".mysql_error());
if(
mysql_num_rows($cat))
{
  echo 
"<select id='id_fst'>";
  echo 
"<option value='0'>Выберите раздел</option>";
  while(
$catalog=mysql_fetch_array($cat))
  {
    echo 
"<option value='{$catalog[id_catalog]}'>".
                            
"{$catalog[name]}</option>";
  }
  echo 
"</select>";
}
?>
<select id='id_snd' disabled='disabled'>
<option value='0'>Выберите подраздел</option>
</select>
</body>
</html>

select.php:
<?php
require_once("config.php");
//Приводим значение GET - параметров к целому значению
$_GET['id_catalog'] = intval($_GET['id_catalog']);
//извлекаем подразделы
$query "SELECT * FROM catalogs WHERE id_parent = {$_GET['id_catalog']} AND hide = 'show' ORDER BY pos";
$cat mysql_query($query);
if(!
$cat) exit("Ошибка извлечения подразделов - ".mysql_error());
if(
mysql_num_rows($cat))
{
  echo 
"<option value='0'>Выберите подраздел</option>";
  while(
$catalog=mysql_fetch_array($cat))
  {
    echo 
"<option value='{$catalog['id_catalog']}'>".
                                
"{$catalog['name']}</option>";
  }
}
?>

Таблица с данными такая:
CREATE TABLE `catalogs` (
  `id_catalog` int(11) NOT NULL AUTO_INCREMENT,
  `name` tinytext NOT NULL,
  `pos` int(11) NOT NULL,
  `hide` enum('show','hide') NOT NULL,
  `id_parent` int(11) NOT NULL,
  PRIMARY KEY (`id_catalog`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;

INSERT INTO `catalogs` (`id_catalog`, `name`, `pos`, `hide`, `id_parent`) VALUES
(1, 'Материнские платы', 1, 'show', 0),
(2, 'Жесткие диски', 2, 'show', 0),
(3, 'Видеокарты', 3, 'show', 0),
(4, 'Процессоры', 4, 'show', 0),
(5, 'ASUS', 1, 'show', 1),
(6, 'Biostar', 2, 'show', 1),
(7, 'Foxconn', 3, 'show', 1),
(8, 'GYGABYTE', 4, 'show', 1),
(9, 'INTEL', 5, 'show', 1),
(10, 'MCI', 6, 'show', 1),
(11, 'Supermicro', 7, 'show', 1),
(12, 'Hitachi', 1, 'show', 2),
(13, 'Sumsung', 2, 'show', 2),
(14, 'Seagate', 3, 'show', 2),
(15, 'Western digital', 4, 'show', 2),
(16, 'ASUS', 1, 'show', 3),
(17, 'GIGABYTE', 2, 'show', 3),
(18, 'MCI', 3, 'show', 3),
(19, 'Sapphire', 4, 'show', 3),
(20, 'AMD', 1, 'show', 4),
(21, 'Intel', 2, 'show', 4);

  Ответить  
 
 автор: Sfinks   (19.12.2013 в 08:31)   письмо автору
 
   для: tourist   (17.12.2013 в 14:44)
 

$("#id_fst").bind("change", function() { 
    // AJAX - запрос 
    $("#id_snd").load("select.php?id_catalog=" + $('#id_fst').val(), function(){
        $("#id_snd").attr("disabled", "");
    }); 
});

  Ответить  
 
 автор: tourist   (20.12.2013 в 10:01)   письмо автору
 
   для: Sfinks   (19.12.2013 в 08:31)
 

Здравствуйте!
В результате, скрипт catalog.php принял следующий вид:
<html><head>
<title>Двойной выпадающий список</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery-2.0.3.min.js" ></script>
<script type="text/javascript">
$(document).ready(function() {
$("#id_fst").bind("change", function() {
// AJAX - запрос
$("#id_snd").load("select.php?id_catalog=" + $('#id_fst').val(), function(){
$("#id_snd").attr("disabled", "");
});
});
});
</script>
</head>
<body>
<?php
//Устанавливаем соединение с базой данных
require_once("config.php");
//Формируем выпадающий список корневых разделов
$query= "SELECT * FROM catalogs WHERE id_parent = 0 AND hide = 'show' ORDER BY pos";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка извлечения разделов - ".mysql_error());
if(mysql_num_rows($cat))
{
echo "<select id='id_fst'>";
echo "<option value='0'>Выберите раздел</option>";
while($catalog=mysql_fetch_array($cat))
{
echo "<option value='{$catalog[id_catalog]}'>".
"{$catalog[name]}</option>";
}
echo "</select>";
}
?>
<select id='id_snd' disabled='disabled'>
<option value='0'>Выберите подраздел</option>
</select>
</body>
</html>
Но это ничего не изменило. Он не работает.

  Ответить  
 
 автор: Sfinks   (20.12.2013 в 21:32)   письмо автору
 
   для: tourist   (20.12.2013 в 10:01)
 

$("#id_snd").attr("disabled", "");
думаю этого достаточно, чтоб он был все равно disabled.

Либо
$("#id_snd").removeAttr("disabled");
либо
$("#id_snd").attr("disabled", false);
попробуйте.

и используйте теги CODE при написании сообщения

  Ответить  
 
 автор: tourist   (24.12.2013 в 14:06)   письмо автору
 
   для: Sfinks   (20.12.2013 в 21:32)
 

Здравствуйте!
Это разговор слепого с глухим. Я не знаю javascript. И пока нет времени его подробно изучать.
В скриптах которые я привел нет ничего моего. Они на 100% из книги "PHP на примерах. 2-е издание"
которую softtime.ru рекламирует. Catalog.php - стр.379. Select.php - стр.380. И они не работают.
Я подумал, может быть в книге, которая у меня, опечатка, или я что то пропустил?
Поэтому, ещё раз прошу подсказать, что и где нужно изменить чтобы они заработали?

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

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