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

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

  • yept

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

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

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

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

    index.html

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



    selects.js

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

    var url = 'get_regions.php';

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



    get_regions.php

    <?php

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

    $country_id = @intval($_GET['country_id']);

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

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

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

    ?>
  • Sinkler

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


    строку
    <select name="country_id" id="country_id">

    можно заменить на
    <select id="country_id">
    и все продолжает работать отлично

  • Sinkler

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

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

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

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

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

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

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

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

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

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

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

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

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