ФорумПрограммированиеJavaScript → Связанные с помощью ajax select'ы (jQuery)

Связанные с помощью ajax select'ы (jQuery)

  • yept

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 13 марта 2013 г. 12:04

    Собственно по теме
    http://pyha.ru/articles/php/ajax-select/

    пытаюсь банально заменить переменную country_id на brend_id для большего понятия кода, в трех файлах. После замены нихера не работает - возвращаю обратно название - все опять работает.

    index.html

    <!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;>
    <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>
    <head>
    <title>Связанные с помощью ajax — select&#39;ы от ПЫХА.РУ</title>
    <meta http-equiv=&quot;Content-Type&quot; content=&quot;application/xhtml+xml; charset=utf-8&quot; />
    <script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;></script>
    <script type=&quot;text/javascript&quot; src=&quot;selects.js&quot;></script>
    </head>
    <body>
    <form action=&quot;#&quot; method=&quot;get&quot;>
    <p>Страна</p>
    <select name=&quot;country_id&quot; id=&quot;country_id&quot;>
    <option value=&quot;0&quot;>- выберите страну -</option>
    <option value=&quot;1&quot;>Россия</option>
    <option value=&quot;2&quot;>Украина</option>
    </select>
    <p>Регион:</p>
    <select name=&quot;region_id&quot; id=&quot;region_id&quot; disabled=&quot;disabled&quot;>
    <option value=&quot;0&quot;>&amp;nbsp;</option>
    </select>
    </form>
    </body>
    </html>



    selects.js

    $(document).ready(function () {
    $(&#39;#country_id&#39;).change(function () {
    var country_id = $(this).val();
    if (country_id == &#39;0&#39;) {
    $(&#39;#region_id&#39;).html(&#39;&#39;);
    $(&#39;#region_id&#39;).attr(&#39;disabled&#39;, true);
    return(false);
    }
    $(&#39;#region_id&#39;).attr(&#39;disabled&#39;, true);
    $(&#39;#region_id&#39;).html(&#39;<option>загрузка…</option>&#39;);

    var url = &#39;get_regions.php&#39;;

    $.get(
    url,
    &quot;country_id=&quot; + country_id,
    function (result) {
    if (result.type == &#39;error&#39;) {
    alert(&#39;error&#39;);
    return(false);
    }
    else {
    var options = &#39;&#39;;
    $(result.regions).each(function() {
    options += &#39;<option value=&quot;&#39; + $(this).attr(&#39;id&#39;) + &#39;&quot;>&#39; + $(this).attr(&#39;title&#39;) + &#39;</option>&#39;;
    });
    $(&#39;#region_id&#39;).html(options);
    $(&#39;#region_id&#39;).attr(&#39;disabled&#39;, false);
    }
    },
    &quot;json&quot;
    );
    });
    });



    get_regions.php

    <?php

    /*
    * Имитируем долгий и нудный ajax запрос
    */
    sleep(rand(1,3));

    $country_id = @intval($_GET[&#39;country_id&#39;]);

    if (file_exists(dirname(__FILE__) . &#39;/&#39; . $country_id . &#39;.txt&#39;)) {
    $regions = array();
    $regs = file(dirname(__FILE__) . &#39;/&#39; . $country_id . &#39;.txt&#39;);
    $i=1;
    foreach ($regs as $r) {
    $regions[] = array(&#39;id&#39;=>$i, &#39;title&#39;=>trim($r));
    $i++;
    }

    $result = array(&#39;type&#39;=>&#39;success&#39;, &#39;regions&#39;=>$regions);
    }
    else {
    $result = array(&#39;type&#39;=>&#39;error&#39;);
    }

    /*
    * Упаковываем данные с помощью JSON
    */
    print json_encode($result);

    ?>
  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 14 марта 2013 г. 2:12, спустя 14 часов 7 минут 57 секунд

    а как ты меняешь?
  • yept

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 14 марта 2013 г. 14:11, спустя 11 часов 59 минут 12 секунд

    во всех файлах в тексте кода - country_id на brend_id меняю - казалось бы какая разница как зовется переменная? ведь логика везде остается та же
  • yept

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 14 марта 2013 г. 14:18, спустя 6 минут 50 секунд

    меняю - просто печатая - не знаю в Adobe Dreamweaver есть специальная функция для замены переменных?)) это при том что третий выпадающих список спокойно получается сделать и прикрутить к этому всему таблицы из базы тоже получается…..а тут вот какой-то писец - не могу увидеть в чем ошибка
  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 14 марта 2013 г. 14:36, спустя 18 минут 6 секунд

    отладь файрбагом аякс-запрос, посмотри, все ли правильно запрашивается/возвращается
  • yept

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 16 марта 2013 г. 5:22, спустя 1 день 14 часов 45 минут

    поставил файбаг в мозиллу, в гугл хроме опцией inspect element воспользовался - но максимум во что въехал - это:
    на вкладках Net и Network соотв. - могу видеть id всех запросов. А вот как делать отладку с помощью брейкпойнтов - еще надо вникать.
    Результат - каким то образом сейчас все заработало после змены во всех файлах в тексте кода - country_id на brend_id.

    Еще один момент заметил - в index.html


    <!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;>
    <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;>
    <head>
    <title>Связанные с помощью ajax — select&#39;ы от ПЫХА.РУ</title>
    <meta http-equiv=&quot;Content-Type&quot; content=&quot;application/xhtml+xml; charset=utf-8&quot; />
    <script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;></script>
    <script type=&quot;text/javascript&quot; src=&quot;selects.js&quot;></script>
    </head>
    <body>
    <form action=&quot;#&quot; method=&quot;get&quot;>
    <p>Страна</p>
    <select name=&quot;country_id&quot; id=&quot;country_id&quot;>
    <option value=&quot;0&quot;>- выберите страну -</option>
    <option value=&quot;1&quot;>Россия</option>
    <option value=&quot;2&quot;>Украина</option>
    </select>
    <p>Регион:</p>
    <select name=&quot;region_id&quot; id=&quot;region_id&quot; disabled=&quot;disabled&quot;>
    <option value=&quot;0&quot;>&amp;nbsp;</option>
    </select>
    </form>
    </body>
    </html>


    строку
    <select name=&quot;country_id&quot; id=&quot;country_id&quot;>

    можно заменить на
    &lt;select id=&quot;country_id&quot;>
    и все продолжает работать отлично

  • Sinkler

    Сообщения: 9658 Репутация: N Группа: в ухо

    Spritz 16 марта 2013 г. 5:37, спустя 15 минут 1 секунду

    вам бы про dom почитать, да и вообще про js.
    наример, здесь learn.javascript.ru
  • yept

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 16 марта 2013 г. 5:51, спустя 14 минут 16 секунд

    спасибо - добавил в закладку - постараюсь вникнуть
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 18 марта 2013 г. 19:59, спустя 2 дня 14 часов 8 минут

    &quot;нихера не работает&quot; - очень расплывчатое описание ошибки. нужна более точная информация что именно не работает. но когда ты сможешь эту информацию предоставить - ты сам поймёшь в чём ошибка.
    не всё полезно, что в swap полезло
  • yept

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 20 марта 2013 г. 14:34, спустя 1 день 18 часов 34 минуты

    мужики, все оказалось до смешного просто - перезагружаю denwer и adobe dreamweaver cs6, обновляю страницу в google chrom - и оппа все что менял, думал, дополнял - пашет! Теперь постоянно так делаю, если не фурычит. осталось проследить какая именно прога глючит. Так что тему можно нах снести

Пожалуйста, авторизуйтесь, чтобы написать комментарий!