За последние 24 часа нас посетили 23023 программиста и 1241 робот. Сейчас ищут 697 программистов ...

Все как всегда

Тема в разделе "PHP для новичков", создана пользователем ZlobnyKolob, 25 окт 2016.

Метки:
  1. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    Всем доброго утра !
    Пытаюсь реализовать типичную задачу Страна - Город, но не выходит, перечитал много информации и вот что получилось, но не работает
    Код html разметки
    HTML:
    1.     <p>
    2.         <select class="CountriesSelect" name="countries" >
    3.         <option value="0">Выберите страну</option>  
    4.             <?php
    5.            // получаем список всех стран в виде массива
    6.            $allCountries = getCountries();
    7.          
    8.                // Для каждого элемента массива производителей автомобилей...
    9.                foreach ( $allCountries as $rowCountry ) {
    10.                // Создаем свой элемент раскрывающегося списка
    11.                print "<option value='".$rowCountry['CountryID'] ."' >". $rowCountry['CountryName'] ."</option>";
    12.                 }
    13.            
    14.             ?>  
    15.             </select>  
    16.         <select class="CitiesSelect" name="cities" >
    17.         <option value="0">Выберите город</option>  
    18.         </select>  
    19.     </p>    
    Далее идет JS файл с посылкой запроса,
    Код (Javascript):
    1.     $(".RegistrationForm .CountriesSelect").change(function() {
    2.         //alert($(".RegistrationForm .CountriesSelect option:selected").val());  
    3.         var CountryID = $(".RegistrationForm .CountriesSelect option:selected").val();      
    4.         $.ajax({
    5.             type: "POST",
    6.             url: "reg_ajax_requests.php.php",
    7.             data:
    8.             {
    9.                 SelectedCountry: CountryID,
    10.                 action: "insertCities"
    11.             },
    12.             cache: false,
    13.             success: function(responce)
    14.             { $(".CitiesSelect").html(responce); },
    15.         });
    16.              
    17.     });  
    и сам файл, который должен отдавать ответ от сервера и функция должна занести данные в html разметку,
    PHP:
    1.     ini_set(default_charset,"UTF-8");
    2.  
    3.     require_once("../../db/connectdb.php");
    4.     // выбранный идентификатор страны
    5.     if (isset($_POST['SelectedCountry'])) { $CountryID = $_POST['SelectedCountry']; }
    6.     echo $CountryID;
    7. switch($_POST['action']) {
    8.     case "insertCities":      
    9.         $QueryCities = mysql_query("      
    10.        SELECT
    11.            cities.id AS CityID,
    12.            cities.name AS CityName
    13.        FROM cities
    14.        WHERE cities.id_country ='.$CountryID.'");      
    15.         $ArrayCities = mysql_fetch_assoc($QueryCities);
    16.        
    17.         do {
    18.             echo "<option value=". $ArrayCities['CityID'] .">" . $ArrayCities['CityName'] . "</option>";  
    19.         } while($ArrayCities = mysql_fetch_assoc($QueryCities));  
    20.     break;
    21.        
    22. };
    Ребят, посмотрите пожалуйста код и подскажите, что я сделал не так,
     
  2. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    Что консоль говорит? какие ошибки?
    надо уже прям в шапку объявлении о телепатии повесить.
     
  3. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    В том-то и дело, что консоль молчит и все)
     
  4. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    о, прости. Прекращай читать попова. тут всё плохо. начни обучаться по нормальным вещам, с поповым далеко не уедешь
     
  5. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    Попова я читал очень давно,

    Решение данной задачи черпал из этих мест
    http://lezhenkin.ru/examples/php/dynamic-select-mysql/
    http://programilla.com/blog/siteconstruction/231.html

    Возможно у тебя есть ссылки на более раскрытую информацию, залей сюда, буду благодарен !
     
  6. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Решение задач надо черпать из мозгов, а не с сомнительных блогов. Но для этого надо туда сначала хотя бы школьный курс информатики и официальный мануал с php.net закачать.
     
  7. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    Доброго всем утра !

    Сижу и перечитав информации кучу, хочу задать вопрос про методику:

    Как лучше создавать на форме поле с типом "дата" и соответственно хранить в mysql ?

    вариант 1: поле на форме с типом дата и в mysql аналогично
    вариант 2: три поля на форме с числом/месяцом/годом и в mysql аналогично,

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

    Всем большое спасибо !
     
  8. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
  9. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    Если можно аргумент, по желанию ;)
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
  11. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    2. Никаких 1.
    input type=date до сих пор не стандартизирован. Поддерживается не всеми клиентами. У неподдерживаемых клиентов будет тупо строка для ввода текста.
    В этой теме неоднократно обсуждалось
    https://php.ru/forum/threads/kak-bystro-osvoit-php.52331/page-11#post-500554
    https://php.ru/forum/threads/kak-bystro-osvoit-php.52331/page-12#post-501417
     
  12. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    На самом деле, я тоже за второй вариант, так как инпут дата в IE выводиться как просто строка
    [​IMG]
     
  13. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Самый правильный вариант 3: В форме три поля, а в mysql один date (ну или timestamp, или datetime). Разбить date на составляющие труда не составляет. А если хранить в базе отдельно год, день и месяц, то фиг по дате отсортируешь
     
    acho нравится это.
  14. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    ой, да. Я чёт увидел про три формы на странице и дальше не прочитал.
     
  15. ZlobnyKolob

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

    С нами с:
    25 окт 2016
    Сообщения:
    184
    Симпатии:
    10
    спасибо