Получить переменную из списка select

Тема в разделе "PHP", создана пользователем NewS, 28 окт 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. NewS

    NewS

    Регистр.:
    15 авг 2008
    Сообщения:
    255
    Симпатии:
    84
    PHP:
    $categories = array("Категория1","Категория2","Категория3");

    if(isset(
    $categories))
    {
    $categorylist "<select name='category'>";
    foreach(
    $categories as $category)
      { 
    $categorylist .= "<option value='".$category."'>".$category."</option>"; }
    $categorylist .= "</select> ";
    }
    Категории выводятся, тут все нормально
    А вот дальше, я думаю, какой-то косячек есть:
    PHP:
    if(isset($categorylist))
    {
    $cat $_POST['category'];
    }
    else { 
    $cat ""; }
    Дале переменная $cat и другие записываются в файл. А поле для $cat остается пустым.
     
  2. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Ну во первых в первом коде есть синтаксическая ошибка, но это ладно, видимо при переносе сюда зачудил.
    Но вот это ни о чем не говорит?
    PHP:
    $_POST['category'] = ""
     
  3. NewS

    NewS

    Регистр.:
    15 авг 2008
    Сообщения:
    255
    Симпатии:
    84
    Первое поправил, а второе - это проверка на правильность категории, ее забыл вырезать в примере.
     
  4. DIAgen

    DIAgen Постоялец

    Регистр.:
    30 окт 2006
    Сообщения:
    134
    Симпатии:
    72
    Не понятный твой код какой то
    PHP:
    $categories = array("Категория1","Категория2","Категория3"); 

    if(isset(
    $categories)) 

    $categorylist "<select name='category'>"
    foreach(
    $categories as $category
      { 
    $categorylist .= "<option value='".$category."'>".$category."</option>"; } 
    $categorylist .= "</select> "
    }  
    Зачем проверять переменую $categories на существование, если до этого она у тебя обновлена.
    PHP:
    if(isset($categorylist)) 

    $cat $_POST['category']; 

    else { 
    $cat ""; }  
    И обратно проверка на существование переменой :) а она до этого определена уже...

    Или ты просто кусками выдрал код иль еще что-то...

    Проверь передаеться ли $_POST['category'];
     
    NewS нравится это.
  5. NewS

    NewS

    Регистр.:
    15 авг 2008
    Сообщения:
    255
    Симпатии:
    84
    Чего-то я совсем за компом засиделся. :)
    Во втором куске не та переменная была, нужно
    PHP:
    if(isset($categories))
    Она в конфиге и может быть закоментирована.
     
  6. Black#FFFFFF

    Black#FFFFFF

    Регистр.:
    19 июл 2007
    Сообщения:
    174
    Симпатии:
    107
    ну тогда так:
    PHP:
    $cat = isset($_POST['category'])?trim($_POST['category']):'';
    $cat = !empty($cat)?$cat:'';

    //проверяем, а пост данные не пришли пустыми?
    //режем пробелы, и проверяем заново, не одни пробелы ли пришли?
    if(isset($categories)&&is_array($categories)&&sizeof($categories)>1){

    }
    //в действительности мало одной проверки, есть ли переменная категории? нужно проверить еще: а) массив ли это? б) размер массива больше одного элемента - если ты выполняешь далее операции над массивом
     
  7. NewS

    NewS

    Регистр.:
    15 авг 2008
    Сообщения:
    255
    Симпатии:
    84
    у меня во втором куске такая проверка внутри стоит:
    PHP:
    $valid 0;
    foreach(
    $categories as $cat)
      {
      if(
    $_POST['category']==$cat || $_POST['category']=="")
      
    $valid 1;
      }
    if(
    $valid==0Ругань
     
Статус темы:
Закрыта.