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

Статус
В этой теме нельзя размещать новые ответы.

NewS

Гуру форума
Регистрация
15 Авг 2008
Сообщения
254
Реакции
87
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 остается пустым.
 
Ну во первых в первом коде есть синтаксическая ошибка, но это ладно, видимо при переносе сюда зачудил.
Но вот это ни о чем не говорит?
PHP:
$_POST['category'] = ""
 
Первое поправил, а второе - это проверка на правильность категории, ее забыл вырезать в примере.
 
Не понятный твой код какой то
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
Чего-то я совсем за компом засиделся. :)
Во втором куске не та переменная была, нужно
PHP:
if(isset($categories))

Зачем проверять переменую $categories на существование, если до этого она у тебя обновлена.
Она в конфиге и может быть закоментирована.
 
ну тогда так:
PHP:
$cat = isset($_POST['category'])?trim($_POST['category']):'';
$cat = !empty($cat)?$cat:'';

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

}
//в действительности мало одной проверки, есть ли переменная категории? нужно проверить еще: а) массив ли это? б) размер массива больше одного элемента - если ты выполняешь далее операции над массивом
 
у меня во втором куске такая проверка внутри стоит:
PHP:
$valid = 0;
foreach($categories as $cat)
  {
  if($_POST['category']==$cat || $_POST['category']=="")
  $valid = 1;
  }
if($valid==0) Ругань
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху