За последние 24 часа нас посетили 52927 программистов и 1768 роботов. Сейчас ищут 955 программистов ...

не корректно отображается "select"

Тема в разделе "Прочие вопросы по PHP", создана пользователем Виkтор, 30 май 2015.

  1. Виkтор

    Виkтор Новичок

    С нами с:
    30 май 2015
    Сообщения:
    6
    Симпатии:
    0
    Есть два скрипта 1.php и 2.php, выложены ниже, думаю всем понятно, но на всякий случай поясню: 1php в зависимости от значения переменной задаёт значение второй переменной, подключает 2.php, который в свою очередь отображает поле select с месяцем в зависимости от значения второй переменной, всё работает верно, кроме августа и сентября, т.е если в 1.php $month задать как 08 или 09, то 2.php выдаст значение месяц, в чём может быть проблема?
    На всякий случай поясню, в написании переменных ошибок нет, многократно проверил и переписал эти два месяца
    1.php
    Код (PHP):
    1. <?php
    2. $month="08";
    3. switch ($month)
    4.     {
    5.     case 01: $month01="selected"; break;
    6.     case 02: $month02="selected"; break;
    7.     case 03: $month03="selected"; break;
    8.     case 04: $month04="selected"; break;
    9.     case 05: $month05="selected"; break;
    10.     case 06: $month06="selected"; break;
    11.     case 07: $month07="selected"; break;
    12.     case 08: $month08="selected"; break;
    13.     case 09: $month09="selected"; break;
    14.     case 10: $month10="selected"; break;
    15.     case 11: $month11="selected"; break;
    16.     case 12: $month12="selected"; break;
    17.     }
    18. include "2.php";
    19. ?>
    2.php
    Код (PHP):
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>месяц</title>
    6. </head>
    7. <body>
    8. <select name="month">
    9.         <option value="00">месяц</option>
    10.         <option <?php echo "$month01"; ?> value="01">январь</option>
    11.         <option <?php echo "$month02"; ?> value="02">февраль</option>
    12.         <option <?php echo "$month03"; ?> value="03">март</option>
    13.         <option <?php echo "$month04"; ?> value="04">апрель</option>
    14.         <option <?php echo "$month05"; ?> value="05">май</option>
    15.         <option <?php echo "$month06"; ?> value="06">июнь</option>
    16.         <option <?php echo "$month07"; ?> value="07">июль</option>
    17.         <option <?php echo "$month08"; ?> value="08">август</option>
    18.         <option <?php echo "$month09"; ?> value="09">сентябрь</option>
    19.         <option <?php echo "$month10"; ?> value="10">октябрь</option>
    20.         <option <?php echo "$month11"; ?> value="11">ноябрь</option>
    21.         <option <?php echo "$month12"; ?> value="12">декабрь</option>
    22.     </select>
    23. </body>
    24. </html>
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    просто очуметь...........
     
  3. Виkтор

    Виkтор Новичок

    С нами с:
    30 май 2015
    Сообщения:
    6
    Симпатии:
    0
    подсажи более хорошее решение, буду только длагодарен
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    всё же просто - всего то надо убрать нули :)
     
  5. Виkтор

    Виkтор Новичок

    С нами с:
    30 май 2015
    Сообщения:
    6
    Симпатии:
    0
    тут дело не в нулях, проверенно уже давно
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    в обеих файлах удалить нули!!
     
  7. Виkтор

    Виkтор Новичок

    С нами с:
    30 май 2015
    Сообщения:
    6
    Симпатии:
    0
    Я уже говорил, дело не в нулях...
     
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    ну я вроде по-русски говорю...
    Лан, решай сам тогда... :)
     
  9. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в нулях. когда они записаны как 09 это восьмеричная с/с, а когда "09" это строка "ноль-девять". вот и думайте.
    ну и как бы более красивое решение как минимум такое: ${'month'.$month} = 'selected';
     
  10. Виkтор

    Виkтор Новичок

    С нами с:
    30 май 2015
    Сообщения:
    6
    Симпатии:
    0
    Спасибо, теперь всё работает, а на счёт ${'month'.$month}= 'selected;' не понял, как это должно работать?
     
  11. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    чтоб понять - надо мануалы читать.
    ${} смешная конструкция внутри которой вычисляется "полное имя переменной". например для встройки в строку (которая с двойными кавычками) значений из массивов. в данном случае "полное имя переменной" будет равно результату конкатенации строки month со значением переменной $month. у вас в коде явно указанное значение - строка 08. то есть на "выходе" будет строка month08 и следовательно будет искаться переменная $month08. ей-то и присвоится значение 'selected', которое потом подставится в опшн.


    успехов.
     
  12. Виkтор

    Виkтор Новичок

    С нами с:
    30 май 2015
    Сообщения:
    6
    Симпатии:
    0
    Спасибо, теперь понял, придётся исправлять)))