Показать сообщение отдельно
  #1 (permalink)  
Старый 19.11.2010, 11:04
Аспирант
Отправить личное сообщение для Lion_astana Посмотреть профиль Найти все сообщения от Lion_astana
 
Регистрация: 19.11.2010
Сообщений: 48

Снова динамический select
Привет всем!Сразу извиняюсь если ошибся разделом, просто не до конца понял в чём ошибка в скриптах:или в запросе к базе, или в JS.

Проблема в следущем:Имеется банальный селект Страна-Город.Куда-то теряется первый элемент в каждом массиве.К примеру если выбираешь в первом селекте Казахстан, то нет в списке опшенов второго селекта города Астана,если выбрать Россию, то нет во втором списке города Ижевск, а если выбрать Польшу, то вообще ничего нет, так как в списке городов только один польский город - Варшава.

Вот index:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
<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>
                  <option value="3">Польша</option>
            </select>
            <p>Регион:</p>
            <select name="region_id" id="region_id" disabled="disabled">
                <option value="0">&nbsp;</option>
            </select>
        </form>
    </body>
</html>


Вот get_regions:

<?php
$db = mysql_connect ("localhost","alex","12345");
mysql_select_db("optoviki",$db); 
 
mysql_set_charset('utf8'); 
 
$country_id = @intval($_GET['country_id']);
 
$result2 = mysql_query ("SELECT `id`,`title` FROM `gorod` WHERE `id_strana` = $country_id",$db);
$myrow2 = mysql_fetch_array($result2); 
 
$regions = array();
while($myrow2=mysql_fetch_array($result2)) {
  $regions[] = $myrow2;
} 
 
$result = array('type'=>'success','regions'=>$regions); 
 
/*
 * Упаковываем данные с помощью JSON
 */
print json_encode($result);
?>



Вот 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"
        );
    });
});


Плюс ко всему тут же в корне лежит Jquery.js.

Вопрос:кто-нибудь может подсказать куда теряется первый элемент массива?
Ответить с цитированием