[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ошибка функции implode()
13_demon_89
День добрый, форумчане. Помогите разобраться вот с чем:

<input type="checkbox" class="ch8" id="q81" name="step8[]" value="1"  onclick="checkBlocking_3()">
<
label for="q81">Первый ответ</label><br>
<
input type="checkbox" class="ch8" id="q82" name="step8[]" value="2" onclick="checkBlocking_3()">
<
label for="q82">Второй ответ</label><br>
<
input type="checkbox" class="ch8" id="q83" name="step8[]" value="3" onclick="checkBlocking_3()">
<
label for="q83">Третий ответ</label><br>

При нажатии на кнопку методом POST передаются значения отмеченных чекбоксов (от 1 до 3) и фу-й implode() объединяются в строку:
$p=implode("o",$_POST['step8']);

В результате вот такое предупреждение:
implode() [function.implode]: Invalid arguments passed
Т.е. POST передает массив в массиве(т.к. могут быть отмечены сразу несколько значений checkbox). Как избавиться от ошибки?




Спустя 22 минуты, 44 секунды (27.03.2012 - 18:32) Pulse написал(а):
13_demon_89
2 параметр функции implode() должен быть массивом

Спустя 1 минута, 2 секунды (27.03.2012 - 18:33) m4a1fox написал(а):
13_demon_89

Кто вам сказал что вот это
Цитата
$_POST['step8']
массив?

Спустя 6 минут, 36 секунд (27.03.2012 - 18:40) 13_demon_89 написал(а):
Цитата (m4a1fox @ 27.03.2012 - 15:33)
13_demon_89

Кто вам сказал что вот это
Цитата
$_POST['step8']
массив?


name="step8[]" - посмотрите на имена чекбоксов.
А то, что второй параметр массив, это и так понятно, вопрос не в этом!

Спустя 5 минут, 43 секунды (27.03.2012 - 18:45) Pulse написал(а):
13_demon_89
Всё должно работать, ошибка наверное возникает, когда ты не отмечаешь не один из чекбоксов.

Спустя 1 минута, 19 секунд (27.03.2012 - 18:47) Pulse написал(а):
Чтобы не возникала ошибка напиши так:
if (!empty($_POST['step8'])) {
$p = implode("o",$_POST['step8']);
}

Спустя 1 минута, 44 секунды (27.03.2012 - 18:48) 13_demon_89 написал(а):
Цитата (Pulse @ 27.03.2012 - 15:45)
13_demon_89
Всё должно работать, ошибка наверное возникает, когда ты не отмечаешь не один из чекбоксов.

Именно так, но с точки эстетики, как убрать это предупреждение? Представьте, пользователь заходит и видит в конце страницы кучу вот таких предупреждений.

Спустя 37 секунд (27.03.2012 - 18:49) Pulse написал(а):
13_demon_89
Я написал решение уже. wink.gif

Спустя 1 минута, 9 секунд (27.03.2012 - 18:50) 13_demon_89 написал(а):
Цитата (Pulse @ 27.03.2012 - 15:47)
Чтобы не возникала ошибка напиши так:
if (!empty($_POST['step8'])) {
$p = implode("o",$_POST['step8']);
}

Спасибо за ответ. Вопрос снят)

Спустя 1 минута, 1 секунда (27.03.2012 - 18:51) Pulse написал(а):
13_demon_89
Спасибо в карму лучше rolleyes.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.