2013-05-21 6 views
1

Я пытаюсь сохранить один из вариантов в выпадающем меню в качестве переменной сеанса.Как сохранить параметр в выпадающем меню как переменную сеанса php?

<select name="number" id="number"> 
      <option>one</option> 
      <option>two</option> 
      <option>three</option> 
     </select> 

      <?php 
     session_start(); 
$_SESSION['number'] = $_POST['number']; 
?> 

Что он возвращается на странице браузера:

Примечания: Undefined индекс: номер в C: \ XAMPP переносного \ HTDOCS \ ева \ 00ideaselection.php на линии 46

  1. Какая здесь ошибка?
  2. Каков наилучший способ сохранить опцию из выпадающего меню в качестве переменной сеанса?
+0

Кажется, что ваш '$ _POST' не имеет индекса' number'. Повторно проверьте это. Здесь недостаточно кода для его отладки. –

+0

Вы пытаетесь получить доступ к параметру POST еще до того, как вы отпустили форму и тем самым отправили какие-либо данные POST ... посмотрите в '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '. – CBroe

ответ

0

Попробуйте

<select name="number" id="number"> 
     <option>one</option> 
     <option>two</option> 
     <option>three</option> 
    </select> 

    <?php 
    session_start(); 
    if(isset($_POST['number'])) 
     $_SESSION['number'] = $_POST['number']; 
    ?> 

Ошибка, Это связано с тем, что вы не разместили форму, и вы пытаетесь получить значение от $ _POST. У $ _POST и $ _GET есть данные из опубликованной формы. Поэтому, когда вы отправляете свою форму на тот же php-скрипт, где создается форма, тогда, когда форма загружается без сообщения формы, она покажет вам это уведомление. Чтобы избежать уведомления, я разместил

isset($_POST['number']) 

проверить, таким образом не будет показано ни одного уведомления.

Когда форма отправлена ​​и вы получите $ _POST, значение будет установлено в сеанс.

Благодаря

+0

Это сработало. Причина в том, что это не сработало, было то, что я поместил оба файла php и html в один и тот же файл. Я создал еще один и через форму, которую я назвал php-файлом. – Stam

+0

Хорошо, что вы, наконец, его исправили :) –

2

Добавить value в выпадающий

<select name="number" id="number"> 
     <option value="1">one</option> 
     <option value="2">two</option> 
     <option value="3">three</option> 
</select> 

и в то время как retriving потребительной стоимости isset функцию, чтобы проверить, было ли размещено значение

<?php 
    session_start(); 
    if(isset($_POST['number'])){ 
     $_SESSION['number'] = $_POST['number']; 
    } 
?> 
+0

Он работал как со значением, так и без него. Если я не поместил атрибут value, он сохранит текст в сеансе. – Stam

0
<select name="number" id="number"> 
     <option value="1">one</option> 
     <option value="2">two</option> 
     <option value="3">three</option> 
</select> 

в то время как retriving использовать значение пустой функции(), чтобы проверить, была ли размещена значение и не пусто. isset() не проверяется как числа передаются в качестве аргумента в $ _POST как строка

<?php 
    session_start(); 
    if(!empty($_POST['number'])){ 
     $_SESSION['number'] = $_POST['number']; 
    } 
?> 
Смежные вопросы