Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Передать массив строкой из значений через запятую в параметр

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Paranoise
Отправлено: 18 Мая, 2013 - 23:33:50
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Получаю массив значений отмеченных чекбоксов в виде ID категорий. Эти ID нужно передать в параметр через запятую.
То, что получилось нанубокодить:

PHP:
скопировать код в буфер обмена
  1.  
  2. if (is_array($_POST['cat'])) // проверяем, передан ли массив значений (множество полей)
  3.                {
  4.                                 $cats = array_values($_POST['cat']); //убираем ключи "cat[]"
  5.                                 $post_category = implode(", ", $cats); //преобразуем массив в строку значений
  6.                                 echo $post_category; // проверяем правильность вывода значений
  7.                                         }
  8.                 $post = array(
  9.                     'post_category' => array($post_category), // задаем строку значений параметру
  10.                     'post_status'   => 'publish',
  11.                     'post_type' => $_POST['post_type'],
  12.                 );
  13.  


С такой конструкций параметру присваивается только ID первого чекбокса, остальные игнорируются, хотя в echo все выводится верно. И если в параметр напрямую вбить например 'post_category' => array(4,7,12,2) все работает прекрасно.
 
 Top
Striker
Отправлено: 19 Мая, 2013 - 00:04:49
Post Id



Частый гость


Покинул форум
Сообщений всего: 128
Дата рег-ции: Июль 2011  
Откуда: Киев


Помог: 1 раз(а)

[+]


CODE (html):
скопировать код в буфер обмена
  1. <form name="cat" method="post">
  2.     <input type="checkbox" name="checkbox[]" value="1" />
  3.     Категория 1
  4.     <input type="checkbox" name="checkbox[]" value="2" />
  5.     Категория 2
  6.     <input type="checkbox" name="checkbox[]" value="3" />
  7.     Категория 3
  8.     <input type="submit"/>
  9. </form>




PHP:
скопировать код в буфер обмена
  1. if(!empty($_POST['checkbox']))
  2. {
  3.     if(is_array($_POST['checkbox'])) // проверяем, передан ли массив значений (множество полей)
  4.     {
  5.         $cats = array_values($_POST['checkbox']); //убираем ключи "cat[]"
  6.         $post_category = implode(", ", $cats); //преобразуем массив в строку значений
  7.         echo $post_category; // проверяем правильность вывода значений
  8.     }
  9.    
  10.     $post = array(
  11.                   'post_category' => array($post_category), // задаем строку значений параметру
  12.                   'post_status'   => 'publish',
  13.                   'post_type' => $_POST['post_type'],
  14.     );
  15. }

(Отредактировано автором: 19 Мая, 2013 - 00:06:22)

 
 Top
LIME
Отправлено: 19 Мая, 2013 - 00:19:24
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




array_values зачем?
(Добавление)
PHP:
скопировать код в буфер обмена
  1. 'post_category' => explode(', ',$post_category),
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB