За последние 24 часа нас посетили 17638 программистов и 1720 роботов. Сейчас ищут 974 программиста ...

Помогите с ajax скриптом

Тема в разделе "JavaScript и AJAX", создана пользователем Kaner, 5 май 2011.

  1. Kaner

    Kaner Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    58
    Симпатии:
    0
    Имеется форма регистрации:
    HTML:
    1.  
    2. <div id=reg>
    3. <form action=reg_result.php method=post id=registration>
    4. <table  cellspacing=10 style=width:100%;>
    5.        <tr>
    6.            <td colspan=2 style=font-size:30px;font-weight:500;>Регистрация:</td>
    7.        </tr>
    8.        <tr>
    9.            <td>Логин:</td>
    10.            <td class=nb> <input type=text name=login id=login class=required title='Выберите себе логин'></td>
    11.        </tr>
    12.        <tr>
    13.            <td>E-mail:</td>
    14.            <td class=nb> <input type=text name=email id=email></td>
    15.        </tr>
    16.        <tr>
    17.            <td>Повторите E-mail:</td>
    18.            <td class=nb> <input type=text name=email2 id=email2></td>
    19.        </tr>
    20.        <tr>
    21.            <td>Пароль:</td>
    22.            <td class=nb> <input type=password name=pass id=pass></td>
    23.        </tr>
    24.        <tr>
    25.            <td>Повторите пароль:</td>
    26.            <td class=nb> <input type=password name=repass id=repass></td>
    27.        </tr>
    28.        <tr>
    29. [b]           <td>Страна:</td>
    30.            <td class=nb> <select name=country lang=20 id=country>
    31.  
    32.            </select>
    33.            </td>[/b]
    34.        </tr>
    35.         <tr>
    36. [b]           <td>Область:</td>
    37.            <td class=nb> <select name=obl lang=20 id=obl>
    38.  
    39.            </select>
    40.            </td>[/b]
    41.        </tr>
    42.        <tr>
    43. [b]           <td>Город:</td>
    44.            <td class=nb> <select name=town lang=20 id=town>
    45.  
    46.            </select>
    47.            </td>[/b]
    48.        </tr>
    49.        <tr>
    50.            <td>Дата Рождения(формат: дд/мм/гггг):</td>
    51.            <td class=nb> <input type=text name=birthday id=birthday></td>
    52.        </tr>
    53.        <tr></tr>
    54.        <tr>
    55.          <td colspan=3 align=right  class=nb><input type=submit name=submit value=Регистрация id=submit> </td>
    56.        </tr></div>
    57. </table></form>
    58.  
    Есть три таблицы:
    1)country:
    +------------+------------------+------+-----+---------+----------------+
    | Field | Type | Null | Key | Default | Extra |
    +------------+------------------+------+-----+---------+----------------+
    | country_id | int(11) unsigned | NO | PRI | NULL | auto_increment |
    | city_id | int(11) | NO | MUL | 0 | |
    | name | varchar(128) | NO | | | |
    +------------+------------------+------+-----+---------+----------------+

    2)region:
    +------------+------------------+------+-----+---------+----------------+
    | Field | Type | Null | Key | Default | Extra |
    +------------+------------------+------+-----+---------+----------------+
    | region_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
    | country_id | int(10) unsigned | NO | MUL | 0 | |
    | city_id | int(10) unsigned | NO | MUL | 0 | |
    | name | varchar(64) | NO | | | |
    +------------+------------------+------+-----+---------+----------------+

    3)city:
    +------------+------------------+------+-----+---------+----------------+
    | Field | Type | Null | Key | Default | Extra |
    +------------+------------------+------+-----+---------+----------------+
    | city_id | int(11) unsigned | NO | PRI | NULL | auto_increment |
    | country_id | int(11) unsigned | NO | MUL | 0 | |
    | region_id | int(10) unsigned | NO | MUL | 0 | |
    | name | varchar(128) | NO | | | |
    +------------+------------------+------+-----+---------+----------------+

    Нужно организовать аякс запрос, чтобы при выборе страны в поле селект для области добалялись все области этой страны из таблицы region,а при выборе области добавлялись в соответствующее поле города этой области.
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
  3. Kaner

    Kaner Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    58
    Симпатии:
    0
    Огромное спасибо за ссылку)
    Но все арвно проблемы:почему-то выводит значения:null
    [js]$(document).ready(function () {
    $('#country').change(function () {
    var country = $(this).val();
    if (country == '0') {
    $('#obl').html('');
    $('#obl').attr('disabled', true);
    return(false);
    }

    $('#obl').attr('disabled', true);
    $('#obl').html('<option>çàãðóçêà...</option>');

    var url = 'get_regions.php';

    $.get(
    url,
    "country=" + country,
    function (result) {

    var options = '';
    $(result.regions).each(function() {

    options += '<option value="' + $(this).attr('region_id') + '">' + $(this).attr('title') + '</option>';
    });
    $('#obl').html(options);
    $('#obl').attr('disabled', false);

    },
    "json"
    );
    });
    });[/js]

    PHP:
    1.   <td>Ñòðàíà:</td>
    2.            <td class=nb> <select name=country  id=country>
    3.            <option value='choose' SELECTED>Ñòðàíà ïðîæèâàíèÿ</option>
    4.            ";
    5. $conn=db_connect();
    6. $strany=$conn->query("select * from country");
    7. $num=$strany->num_rows;
    8.           for ($i=0;$i<$num;$i++)
    9.           {
    10.           $row=$strany->fetch_assoc();
    11.           echo"
    12.            <option value=".$row['country_id'].">".$row['name']."</option>";
    13.           }
    14.           echo"
    15.            </select>
    16.            </td>
    17.        </tr>
    18.         <tr>
    19.            <td>Îáëàñòü:</td>
    20.            <td class=nb> <select name=obl lang=20 id=obl DISABLED>
    21.  
    22.            </select>
    23.            </td>
    24.        </tr>
    PHP:
    1. <?php
    2. include('functions.php');
    3.  
    4. sleep(rand(1,3));
    5.  
    6.  
    7. $country_id = @intval($_GET['country']);
    8.  
    9.  
    10.     $regions = array();
    11.     $conn=db_connect();
    12.     $res=$conn->query("select * from region where country_id='".$country_id."'");
    13.     $num=$res->num_rows;
    14.     for($i=1;$i<=$num;$i++){
    15.     $regs1 = $res->fetch_assoc();
    16.     $regs=$regs1['name'];
    17.     $regions[] = array('id'=>$regs1['region_id'], 'title'=>trim($regs));
    18.     }
    19.  
    20.     $result = array('type'=>'success', 'regions'=>$regions);
    21.  
    22.  
    23.  
    24. print json_encode($result)
    25. ?>
    26.  
    Кому несложно, укажите где ошибка.