2015-03-30 4 views
-3

Я пытаюсь создать форму флажка из значений в массиве в php для отправки через POST. Это код:Неизвестный вывод в php

<?php 
$check = array('beiber' => 'dumb', 'john' => 'singer', 'michael' =>   'legend', 'lovato' => 'firestarter'); 
$t = 1; 
$name = $t; 
foreach($check as $x =>$y){ 
    $name = $t++; 
    echo $name; 
    echo ' <input type = "checkbox" name =' . $name . 'value =' . $x . '/>' . $x . $sp . $y . '<br>'; 
} 
?> 
<input name = "submit" type = "submit" value = "submit" /><br> 

<?php 
if(isset($_POST['submit'])){ 
    print_r($_POST); 
} 
?> 

Выход я получаю после нажатия представить, если все флажки является:

Array ([1value] => on [2value] => on [3value] => on [4value] => on [submit] => submit) 

Мой вопрос, почему они, имеющие значение «на» и как это исправить Это. Благодарю.

+0

Что устанавливает '$ x'? –

+0

@john Conde, почему я проголосовал? –

+0

i присвоил значения флажкам, и это то, что я хочу отправить POST –

ответ

1

Вы вывод неправильный HTML, измените строку вывода на:

echo '<input type="checkbox" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($x) . '" />' . htmlspecialchars($x . $sp . $y) . '<br>'; 

Примечание:

  1. кавычки значения атрибутов
  2. пробелы между именами атрибутов
  3. htmlspecialchars, чтобы экранировать специальные символы
+0

есть. Наверное, так оно и есть. Твоя работала хорошо. Я не думал, что избежать переменных будет иметь значение. Спасибо. –

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