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

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

  • yept

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

    Spritz Март 13, 2013, 8: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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Spritz Март 16, 2013, 1: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

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

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

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

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

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

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

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

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

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

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

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

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

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