Помогите c jquery

Discussion in 'PHP' started by kdk, 22 Oct 2009.

  1. kdk

    kdk Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    112
    Likes Received:
    5
    Reputations:
    -3
    усть код! типа http://www.lasso.pro/selectCombo/
    Как можно его дописать что бы выводились постепенно <div> тоесть страна->Область->город
    HTML:
     <html> 
        <head> 
            <title></title> 
             <script src='../js/jquery.js' type='text/javascript'></script> 
             <script type="text/javascript"> 
                $(document).ready(function(){ 
                       showCountriesById($('#countryId').val()); 
                 }); 
                function showCountriesById (val) { 
                $.ajax({ 
                type: "POST", 
                url: "ajax.php", 
                data: "countryId="+val, 
                success: function(html){ 
                    $("#cityContainer").html(html); 
                } 
            }); 
            } 
            </script> 
        </head> 
        <body> 
          <select name="countryId" id="countryId" onchange="showCountriesById(this.value)"> 
                    <?php 
                    //Выводишь страны 
                    if (isset( $countryArr))  
                    { 
                    ?> 
                        <?php 
                        foreach ( $countryArr as $s) { 
                        ?> 
                            <option value="<?=$s['id']?>"><?=$s['strana']?></option> 
                        <?php 
                        } 
                        ?> 
                    <?php 
                    } 
                    ?> 
                    </select> 
                        <div id="cityContainer">    </div>     
        </body> 
    </html> 
    ajax.php
    HTML:
    <?php 
    $countryId = $_POST['countryId']; 
    //Выбираешь из бд города и заносишь в массив 
    $html .= '<select name="cities">'; 
    while ($row = mysql_fetch_array($res)) { 
        $html    .= '<option value="'.$row['id'].'" >'.$row['gorod']'.</option>'; 
    } 
    echo $html; 
    ?>
     
  2. K0rINf

    K0rINf Member

    Joined:
    20 Jan 2009
    Messages:
    40
    Likes Received:
    5
    Reputations:
    6
    Передавай разные значения. Типа отправляешь $_POST['страна'] на пхп проверяешь если $_POST['страна']== чемуто то echo (Форма для выбора региона с функцией аякса)
    с этой формы отправляешь уже $_POST['регион'] в Пхп проверяешь теперь $_POST['страна']== чемуто то echo (Форма для выбора города с аяксом).
    Кажеться уже чето такое было! Могу попробывать без jquery написать!
     
  3. kdk

    kdk Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    112
    Likes Received:
    5
    Reputations:
    -3
    А еще кто то может подсказать????
     
  4. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    Добавь еще одну функцию и див для регионов.
    PHP:
    <html>
        <head>
            <title></title>
             <script src='../js/jquery.js' type='text/javascript'></script>
             <script type="text/javascript">
                $(document).ready(function(){
                       showCountriesById($('#countryId').val());
                 });
                function showCountriesById (val) {
                $.ajax({
                type: "POST",
                url: "ajax.php",
                data: "countryId="+val,
                success: function(html){
                    $("#cityContainer").html(html);
                }
                });
                }
                function showDistrictById (val) {
                $.ajax({
                type: "POST",
                url: "ajax.php",
                data: "districtId="+val,
                success: function(html){
                    $("#districtContainer").html(html);
                }
                });
                }
            </script>
        </head>
        <body>
          <select name="countryId" id="countryId" onchange="showCountriesById(this.value)">
                    <?php
                    
    //Выводишь страны
                    
    if (isset( $countryArr)) 
                    {
                    
    ?>
                        <?php
                        
    foreach ( $countryArr as $s) {
                        
    ?>
                            <option value="<?=$s['id']?>"><?=$s['strana']?></option>
                        <?php
                        
    }
                        
    ?>
                    <?php
                    
    }
                    
    ?>
                    </select>
                        <div id="cityContainer">    </div>
                        <div id="districtContainer">    </div>                        
        </body>
    </html>
    ajax.php

    PHP:
    <?php
    require_once '../config/db.php'//подключаешь бд
    if($_POST['countryId']) {
    $docId $_POST['countryId'];

    $query "..."//запрос
    $res mysql_query($query);

    $html .= '<select name="cities" onchange="showDistrictById(this.value)">';
    while (
    $row mysql_fetch_array($res)) {
        
    $html    .= '<option value="'.$row['id'].'" >'.$row['gorod']'.</option>'
    }
    $html .= '</select>';
    echo 
    $html;
    }
    if(
    $_POST['districtId']) {
        
    //делаешь запрос на выборку регионов и так же, как и страны выводишь в селекте
    }
    ?>
     
    #4 diGriz, 23 Oct 2009
    Last edited: 23 Oct 2009
  5. Byte_

    Byte_ Elder - Старейшина

    Joined:
    7 Sep 2008
    Messages:
    143
    Likes Received:
    34
    Reputations:
    2
    Очень люблю jquery
    могу предложить просто добавить красивости в код.
    Code:
    function showCountriesById (val) {
    $("#districtContainer").html('<img src="/loader.gif" />'); // гифка которая появляется пока идёт запрос.
    $.post('ajax.php',{countryId:val},function(data){$("#districtContainer").html(data);})