Автор Тема: Drop Down - Проблем  (Прочетена 3985 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

benjikt

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 105
Drop Down - Проблем
« -: 17 Април 2013, 22:44:29 »
Ето първо кода:
Код: Javascript
  1. <select id="categories" name='category'> <!-- just some information -->
  2.         <?php
  3.         while ($row = mysql_fetch_array($query)){
  4.         ?>
  5.         <option value="<?php echo $row['id']; ?>"><?php echo $row['category']; ?></option>
  6.        
  7.         <?php
  8.         }
  9.         ?>
  10. </select>
  11.  <script type="text/javascript">
  12.  $(document).ready(function() {
  13.         $('#categories').change(function() {
  14.                 $.ajax({
  15.  
  16.                         data: {
  17.                                 val1:$('#categories').val()
  18.                         },
  19.                                                 url: 'ajax.php',
  20.                         success: function(data){
  21.                                 $('#result').html(data);
  22.                         }
  23.                 })
  24.         })
  25. })
  26.  </script>
  27. <div id="result"></div>
ajax.php Файла:
Код: PHP
  1. <?php
  2. include "config.php";
  3. $name = $_GET['val1'];
  4. $query = mysql_query("SELECT * FROM category WHERE parent_id='$name'");
  5. ?>
  6. <select id="subcategory">
  7. <?php
  8. while ($row = mysql_fetch_array($query)){
  9. ?>
  10.  
  11.         <option value="<?php echo $row['id']; ?>"><?php echo $row['category']; ?></option>
  12.  
  13. <?php
  14. }
  15. ?>
  16. </select>
Та въпроса ми е следния това което се получава от този код(ако може така да се нарече) е това http://demos.99points.info/dynamic_dropdown/
а аз искам да може да се показват повече селекта от 1, например потребителя е избрал Категория "Авто", показва се селект с подкатегории например "Коли, мотори, части и т.н", потребителя избира "Коли" трябва да се покаже още един селект с марки на коли и т.н.
Накратко да излизат толкова селекта, колко са навързани със самата категория или подкатегория.
Дано да сте ме разбрали.
Благодаря предварително.

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Drop Down - Проблем
« Отговор #1 -: 17 Април 2013, 22:56:44 »
По същия начин както вадиш първото дроп меню. Правиш си нов файл, от където ще визуализираш въпросния селект (може да използваш ajax.php, но трябва да си слагаш променливи, да знаеш кое точно да извадиш). След това в JS пишеш нова Ajax заявка, само че няма да се активира при промяната на #categories, а при промяната на #subcategories от вече извикания дроп.
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

benjikt

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 105
Re: Drop Down - Проблем
« Отговор #2 -: 17 Април 2013, 23:00:06 »
Ами аз мисля,че направих нещо такова ама не се получи нищо, ако не ти е проблем да ми скалъпиш кодче.

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Drop Down - Проблем
« Отговор #3 -: 17 Април 2013, 23:06:11 »
Ами аз мисля,че направих нещо такова ама не се получи нищо, ако не ти е проблем да ми скалъпиш кодче.
Ми дай да видим какво си скалъпил, ще го нагласим.
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

benjikt

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 105
Re: Drop Down - Проблем
« Отговор #4 -: 17 Април 2013, 23:09:30 »
това е втория JS
Код: Javascript
  1. <script type="text/javascript">
  2.  $(document).ready(function() {
  3.         $('#subcategory').change(function() {
  4.                 $.ajax({
  5.                                                  url: 'ajax2.php',
  6.                         data: {
  7.                                 val2:$('#subcategory').val()
  8.                         },
  9.                        
  10.                         success: function(data){
  11.                                 $('#result2').html(data); //data keeps all information echo-ed from ajax.php
  12.                         }
  13.                 })
  14.         })
  15. })
  16.  </script>
Това е ajax2.php:
Код: PHP
  1. <?php
  2. include "config.php";
  3. $name = $_GET['val2'];
  4. $query = mysql_query("SELECT * FROM category WHERE parent_id='$name'");
  5. ?>
  6. <select id="subcat" name='category'>
  7. <?php
  8. while ($row = mysql_fetch_array($query)){
  9. ?>
  10.  
  11.         <option value="<?php echo $row['id']; ?>"><?php echo $row['category']; ?></option>
  12.  
  13. <?php
  14. }
  15. ?>
  16. </select>

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Drop Down - Проблем
« Отговор #5 -: 17 Април 2013, 23:28:53 »
Ми на пръв поглед трябва да е нещо от тоя сорт. Получаваш ли някаква грешка, пищи ли нещо в конзолата?
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

benjikt

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 105
Re: Drop Down - Проблем
« Отговор #6 -: 17 Април 2013, 23:32:58 »
Не абсолютно нищо, не пищи. Това ми изкара нервичките.

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Drop Down - Проблем
« Отговор #7 -: 17 Април 2013, 23:56:09 »
Ами не ти дава грешка, щото не се изпълнява JS кода. Когато му казваш използваш .change(), jQuery очаква елемента, на който се закача вече да съществува. В първия случай елемента наистина съществува при зареждането на страницата, но при втория въпросния елемент се генерира динамично. За да стане номера трябва да ползваш .live(). Според документацията, "Attach an event handler for all elements which match the current selector, now and in the future."
Промени втория AJAX да започва по този начин и ще сработи:
Код: Javascript
  1. $('#subcategory').live('change', function() {
  2. // ...
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

benjikt

  • Full Member
  • ***
  • Благодарности
  • -Казани: 1
  • -Получени: 0
  • Публикации: 105
Re: Drop Down - Проблем
« Отговор #8 -: 18 Април 2013, 00:02:57 »
Благодаря МНОГО, трябва да почна да чета по-внимателно тая документация.

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Drop Down - Проблем
« Отговор #9 -: 18 Април 2013, 00:09:32 »
Тъкмо щях да кажа, че си оправиха най-после документацията... ама ето един косур, важните съобщения ги крият в обикновен текст, вместо да ги сложат в червена кутия да се набиват на очи. Не използвай live, че са взели та са го махнали от новите версии, on трябва да ти свърши същата работа. Поне така казват.
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!