2013-04-06 2 views
1

У меня есть страница с около 50 входных флажков, из которых ихLooping над флажками -PHP

name="form[]" 

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

Это мой цикл:

if ($this->input->post('action') == 'additional') { // Checks if radio button was checked 
    foreach ($this->input->post('form') as $forms) { // If above ^^^ is true loop through form[] 
     $givenforms = ', '.$forms.''; // What ever form[] is in the array assign them to the givenforms variable 
    } 
    $comments = 'This student was given'.$givenforms.''; // The comment I want to store in the database 
} 

Это работает, но только один вид (флажков). Если по какой-то причине мой клиент должен дать студенту все 50 форм, я хочу $ comment = 'Этот ученик был дано ......................... .......................... (все 50 форм) '

Любые ссылки или подсказки будут очень признательны.

+0

Это CodeIgniter право? Лучше также добавить фреймворк к тегам. –

+0

О, извините! Я сделаю это прямо сейчас! –

+0

Также, чтобы добавить, оба ответа дают одинаковый точный результат! Фабрицио только ответил первым. –

ответ

4

Вы перезаписать значение в каждой итерации с = вместо конкатенации .=, но я полагаю, вы можете использовать implode для случая использования:

if ($this->input->post('action') == 'additional') { // Checks if radio button was checked 
    $givenforms = implode(', ', $this->input->post('form')); 
    $comments = 'This student was given'.$givenforms; 
} 
+0

Этот ответ верный! –

1

$givenforms = ', '.$forms.''; является неправильным, обусловлены каждым запуском через цикл будет перезаписать предыдущий.
Используйте .= (оператор конкатенации) вместо =.

Кроме того, убедитесь, чтобы установить переменную, используя $givenforms = ""; вне цикла перед конкатенации его с помощью $givenforms .= ...........

Если вы не сделаете это, вы получите предупреждение (или уведомление, не уверен).

+0

Ответ правильный! –

+0

Конкатенат - правильное слово для вашего оператора append –

+0

Я изменил это, но Rixhers совершили редактирование в то же время о чем-то другом. – Lukas

Смежные вопросы