За последние 24 часа нас посетили 37263 программиста и 1721 робот. Сейчас ищут 625 программистов ...

Связаные списки. Подключение Ajax

Тема в разделе "PHP для новичков", создана пользователем SerfUA, 1 сен 2014.

  1. SerfUA

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

    С нами с:
    18 фев 2014
    Сообщения:
    75
    Симпатии:
    4
    Народ очень нужна помощь.
    Короче у меня есть работающий код связанных списков страны-региона-города. Но мне нужно подключить к моему коду Ajax ну чтобы списки появлялись без перегрузки страницы.
    Код (Text):
    1.  
    2. <html>
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    5. <title>Proba</title>
    6. </head>
    7. <body>
    8. <?php // Створення масивів
    9. $city = array('ci0' =>'Volodumyr-Volynskiy', 'ci1' =>'Lutsk', 'ci2' =>'Novovolynsk', 'ci3' =>'Lviv', 'ci4' =>'Komarno', 'ci5' =>'Truskavets', 'ci6' =>'White Church', 'ci7' =>'Boryspil', 'ci8' =>'Cherry',
    10.               'ci9' =>'Des-Moines', 'ci10' =>'Newton', 'ci11' =>'Atlantic', 'ci12' =>'Mitchell', 'ci13' =>'Sioux Falls', 'ci14' =>'Huron', 'ci15' =>'Casper', 'ci16' =>'Rawlins', 'ci17' =>'Riverton',
    11.               'ci18' =>'Hermosillo', 'ci19' =>'Cananea', 'ci20' =>'Caborca', 'ci21' =>'Chihuahua', 'ci22' =>'Delicias', 'ci23' =>'Parral', 'ci24' =>'Myskis', 'ci25' =>'Castanos', 'ci26' =>'San Pedro');
    12. $region[r0] = array("NAME" => "Volunska", "ITEMS" => array('ci0', 'ci1' , 'ci2'));
    13. $region[r1] = array("NAME" => "Lvivska", "ITEMS" => array('ci3', 'ci4', 'ci5'));
    14. $region[r2] = array("NAME" => "Kievska", "ITEMS" => array('ci6', 'ci7', 'ci8'));
    15. $region[r3] = array("NAME" => "Iowa", "ITEMS" => array('ci9', 'ci10', 'ci11'));
    16. $region[r4] = array("NAME" => "South_Dakota", "ITEMS" => array('ci12', 'ci13', 'ci14'));
    17. $region[r5] = array("NAME" => "Wyoming", "ITEMS" => array('ci15', 'ci16', 'ci17'));
    18. $region[r6] = array("NAME" => "Hermosillo", "ITEMS" => array('ci18', 'ci19', 'ci20'));
    19. $region[r7] = array("NAME" => "Cananea", "ITEMS" => array('ci21', 'ci22', 'ci23'));
    20. $region[r8] = array("NAME" => "Caborca", "ITEMS" => array('ci24', 'ci25', 'ci26'));
    21. $countri[c0] = array("NAME" => "Ukraine", "ITEMS" => array('r0', 'r1' , 'r2'));
    22. $countri[c1] = array("NAME" => "USA", "ITEMS" => array('r3', 'r4' , 'r5'));
    23. $countri[c2] = array("NAME" => "Mexico", "ITEMS" => array('r6', 'r7' , 'r8'));
    24. ?>
    25. <form id="form1" name="form" method="post">
    26. <? echo'<select name="countri">';
    27.              //  ПОЧАТоК селекта з країнами
    28.             if(isset($_POST['countri'])){$option = $_POST['countri'];} //  Умова при якій було вибрано пений option цього селекту заноситься в змінну $option
    29.             if($_POST['countri'] == 0){ // Якщо опція цього лесекту буде = 0 то,
    30.                 echo'<option value="0">Виберіть країну</option>';} // вибиває додатково першу опцію зі значенням "Виберіть країну"
    31.             foreach ($countri as $key => $value){   // перебирає масив $countri
    32.                 if($option == $key){
    33.                     echo '<option selected="selected" value="'.$key.'" >'.$value['NAME'].'</option>';  // якщо вибраний елемент          
    34.                 }  //  селекта буде дорівнювати ключеві значить він буде мати selected="selected"
    35.                 else{echo '<option value="'.$key.'" >'.$value['NAME'].'</option>';} //  Усі інші НЕ будуть мати selected і викидається список
    36.             } // усіх згідно ключа $key і значення $value['NAME']
    37.             // КІНЕЦЬ селекта з країнами          
    38.     echo'</select>';          
    39. if($_POST['countri']==!0){  // Якщо value опції селекта з КРАЇНами НЕ дорівнює 0
    40.     echo'<select name="region">'; // ПОЧАТОК селекта з ОБЛАСТЯМИ
    41.     if(isset($_POST['region'])){$option3 = $_POST['region'];} //  Умова при якій було вибрано пений option цього селекту заноситься в змінну $option3
    42.     if($_POST['region']==0){echo'<option value="0">Виберіть область</option>';} // вибиває додатково першу опцію зі значенням "Виберіть країну"
    43.     foreach ($region as $key => $value){ // перебирає масив $region І створюємо список областей
    44.         if(in_array($key, $countri[$option]['ITEMS'])){ // Підбір списку саме тих областей які належать країні
    45.             if($option3 == $key){   // якщо вибраний елемент селекта буде дорівнювати ключеві значить він буде мати selected="selected"
    46.                 echo '<option selected="selected" value="'.$key.'" >'.$value['NAME'].'</option>'; // якщо вибраний елемент
    47.             } //  селекта буде дорівнювати ключеві значить він буде мати selected="selected"
    48.             else{echo '<option value="'.$key.'" >'.$value['NAME'].'</option>';} // Усі інші елементи селектора НЕ будуть мати selected і викидається список
    49.         }
    50.     }
    51.     echo'</select>';  // КІНЕЦЬ СЕЛЕКТОРА з ОБЛАСТЯМИ
    52. }        
    53. if($_POST['region']==!0){   // Якщо value опції селекта з РЕГІОНАМИ НЕ дорівнює 0 то відкриваємо новий селктор з містами
    54.     echo'<select name="city">'; // ПОЧАТОК селектора МІСТАМИ
    55.     if(isset($_POST['city'])){$option4 = $_POST['city'];}  //  Умова при якій було вибрано пений option цього селекту заноситься в змінну $option4
    56.     if($_POST['city'] == 0){echo'<option value="0">Виберіть місто</option>';}
    57.     foreach ($city as $key => $value){      // перебирає масив $city І створюємо список міст
    58.         if(in_array($key, $region[$option3]['ITEMS'])){ //Підбір списку саме тих мыст які належать області
    59.             if($option4 == $key){     // якщо вибраний елемент селекта буде дорівнювати ключеві значить він буде мати selected="selected"
    60.                 echo '<option selected="selected" value="'.$key.'" >'.$value.'</option>';}
    61.             else{echo '<option value="'.$key.'" >'.$value.'</option>';} // Усі інші елементи селектора НЕ будуть мати selected і викидається список
    62.         }
    63.     }
    64.     echo'</select>'; // КІНЕЦЬ СЕЛЕКТОРА З МІСТАМИ
    65. }
    66. echo <<<here
    67.     <input type="submit" name="submit" id="submit" value="OK"/>
    68.     </form>
    69. here;
    70. if(isset($_POST['city'])){  // ВИВЕСТИ НАЗВУ ВИБРАНОГО МІСТА
    71.     echo "Ви вибрали місто: "."<b>".$city[$option4]."</b> <br />";}
    72. ?>
    73. </body>
    74. </html>
    Суть моего вопроса: можно ли мне как то технологию Аякс привязать к моему коду, или код надо переделывать. Пожалуйста аргументируйте свой ответ. Всем спасибо.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а попробовать? можно всегда.
     
  3. SerfUA

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

    С нами с:
    18 фев 2014
    Сообщения:
    75
    Симпатии:
    4
    да пробовал я уже. Результат негативный.Подскажите пожалуста, код необезательно писать, роскажыте логику потробно и все.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
  5. SerfUA

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

    С нами с:
    18 фев 2014
    Сообщения:
    75
    Симпатии:
    4
    Спасибо! Помогли)