X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Связанные динамичные списки Select
Kdes70
Kdes70
Topic Starter сообщение 18.4.2012, 20:08; Ответить: Kdes70
Сообщение #1


Доброго времени суток!!!
Нужна помощь переделать скрипт который состоит из двух связанных списков [страна]->[город]
мне нужно получить [категория]->[подкатегория] притом значения <option> подставлялись из БД
в БД есть вот такие таблицы:
CREATE TABLE `categories` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(255) default NULL,
  `meta_d` varchar(255) NOT NULL,
  `meta_k` varchar(255) NOT NULL,
  `text` text NOT NULL,
  PRIMARY KEY  (`id`)



CREATE TABLE `sub_categories` (
  `id` int(4) NOT NULL auto_increment,
  `cat_id` int(4) NOT NULL,
  `meta_k` varchar(255) NOT NULL,
  `meta_d` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)


вот нашел вот такой скрипт
начал переделывать и застопорился на одном моменте очень нужна помощь сам справится не смогу опыта очень мало.
вот структура формы:

<form action="" method="post">
<table>
<tr>
  <td>Страна: </td>
  <td><select id="cat" name="cat" onchange="getCatList(this)">
      
   <option value="">Выберите страну</option>
  <? $result = mysql_query("SELECT title,id FROM categories",$db);  
            if (!$result)
            {
    echo "<p>Запрос на выборку данных из базы не прошел. <br> <strong>Код ошибки:</strong></p>";
    exit(mysql_error());
            }
    if (mysql_num_rows($result) > 0)
{
    $myrow = mysql_fetch_array($result);
    do
{
    printf ("<option value='%s'>%s</option>",$myrow["id"],$myrow["title"]);[/left][/size][/font][/color]
[color=#000000][font=Verdana, Tahoma, Arial, sans-serif][size=3][left]}
    while ($myrow = mysql_fetch_array($result));
}
    ?>
    </select>
  </td>
</tr>
<tr>
  <td>Город: </td>
  <td><select id="subcat" name="subcat">

  </select>
  </td>
</tr>
</table>
</form>


Здесь я вывел первый список ,второй должен подставляться из внешнего файла.

После в файле <script type="text/javascript" src="chained.js"></script>

подставил свои значения (правда не уверен что все сделал правильно)


var ajax = new Array();
function getCatList(sel)
{
var catCode = sel.options[sel.selectedIndex].value;
document.getElementById('subcat').options.length = 0; // Empty city select box
if(catCode.length>0){
  var index = ajax.length;
  ajax[index] = new sack();

  ajax[index].requestFile = 'getcities.php?catCode='+catCode; // Specifying which file to get
  ajax[index].onCompletion = function(){ createCities(index) }; // Specify function that will be executed after file has been found
  ajax[index].runAJAX();  // Execute AJAX function
}
}
function createCities(index)
{
var obj = document.getElementById('subcat');
eval(ajax[index].response); // Executing the response from Ajax as Javascript code
}



потом это все как я понимаю идет вот сюда <script type="text/javascript" src="ajax.js"></script>
и теперь следующий файл который и вызвал у меня всю проблему это getcities.php
не знаю как вывести из БД подкатегории , умоляю напишите как это зделать!!!! или если есть решение моей задачи другим способом покажите плиз!!!! Уже второй день бьюсь над этим все что выдал мне google это самый наипростейший способ
getcities.php выглядит он так:
<?php
if(isset($_GET['catCode'])){  ..это пришло из [color=#333333]chained.js[/color]
    
      switch($_GET['catCode']){

      case "ru":
      echo "obj.options[obj.options.length] = new Option('Москва','1');\n";
      echo "obj.options[obj.options.length] = new Option('Санкт-Петербург','2');\n";
      echo "obj.options[obj.options.length] = new Option('Волгоград','3');\n";
      echo "obj.options[obj.options.length] = new Option('Владивосток','4');\n";

      break;
      case "ua":

      echo "obj.options[obj.options.length] = new Option('Киев','11');\n";
      echo "obj.options[obj.options.length] = new Option('Одесса','12');\n";
      echo "obj.options[obj.options.length] = new Option('Львов','13');\n";

      break;
      case "us":

      echo "obj.options[obj.options.length] = new Option('Нью-Йорк','21');\n";
      echo "obj.options[obj.options.length] = new Option('Чикаго','22');\n";
      echo "obj.options[obj.options.length] = new Option('Вашингтон','23');\n";

      break;
      }
      }  
?>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
c0ns0l3
сообщение 30.4.2012, 22:45; Ответить: c0ns0l3
Сообщение #2


Такс, пойдем по стопам..

printf ("<option value='%s'>%s</option>",$myrow["id"],$myrow["title"]);[/left][/size][/font][/color]
[color=#000000][font=Verdana, Tahoma, Arial, sans-serif][size=3][left]}


У тебя в селекте, идут опции, данные которых должны передаться в РНР на вывод подкатегорий,но у тебя в есть только value, в который ты подставляешь ID с БД, тебе нужно еще привязать имя, переменной в твоем случаи это catCode тоесть должно на выходе получиться следующее


<option value="232" name="catCode" value="Страна с кодом 232 "/>

Теперь у тебя будет передаваться catCode в РНР, там его обрабатывать... делай по аналогу как ты выводил 1й список, только SQL запрос изменится немножко
$result = mysql_query("SELECT title,id FROM sub_categories WHERE meta_k = ".$_GET['catCode'],$db);


Таким образом, у тебя из БД sub_categories будут выбраны столбцы title,id в которых meta_k = value из твоей формы, тоесть ID страны, области .. или что ты там будешь писать... тоесть тебе нужно будет заполнить в БД еще и это поле..

тоесть общий код будет выглядить так:
<?php
if(isset($_GET['catCode']){
  $result = mysql_query("SELECT title,id FROM sub_categories WHERE meta_k = ".$_GET['catCode'],$db);
  if(!result)
   die;
         if (mysql_num_rows($result) > 0){
   while ($myrow = mysql_fetch_array($result)){
    echo "obj.options[obj.options.length] = new Option('".$myrow['title']."','".$myrow['id']."');n";
   }
  }
}
?>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kdes70
Kdes70
Topic Starter сообщение 31.5.2012, 21:30; Ответить: Kdes70
Сообщение #3


Блогодарю за дохотчивое пояснение!!!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Гость_0_* Гость_0_*
сообщение 31.5.2012, 21:52; Ответить: Гость_0_*
Сообщение #4


Ой спасибо! А я только хотел тему с таким же вопросом создавать :(
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
c0ns0l3
c0ns0l3
сообщение 1.6.2012, 8:39; Ответить: c0ns0l3
Сообщение #5


А уже видишь, на все ответили :)


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Списки всех зарегистрированных доменов с указанными NS адресами
11 phosphoruss 8695 4.11.2021, 21:07
автор: phosphoruss
Открытая тема (нет новых ответов) Продаю списки WordPress(11.2млн), Joomla(1.53млн) форумов и ещё 42 движков
0 naikon_group 1424 22.8.2015, 21:50
автор: naikon_group
Открытая тема (нет новых ответов) Куплю статьи связанные с древесиной
Скупаю деревообработку, древесину в ремонте и строительстве
0 PostBrigada 1591 11.8.2015, 12:11
автор: PostBrigada
Открытая тема (нет новых ответов) серые пункты form-select-option (помогите написать более стабильный код)
0 deFISH 5358 15.4.2014, 11:41
автор: -deFISH-
Открытая тема (нет новых ответов) горизонтальные списки ul с блочным отображение
1 KODAGEN 8420 12.11.2010, 18:54
автор: -Fender-


 



RSS Текстовая версия Сейчас: 18.4.2024, 8:04
Дизайн