2014-08-07 3 views
1

я пытаюсь создать форму для вставки студентов оценки в колледже .. У меня есть список всех студентов идентификаторов и форма с отметками .. это моя форма:

<input type="hidden" name="id[]" value="{$student.id}" /> 
<input type="text" name="mark[]" size="5" /> 

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

foreach ($_POST as $student){ 
      echo $student['id'].$student['mark']; 
     } 

но я получаю это когда я отправить форму:

Неопределенный индекс: id Неопределенный индекс: знак

В чем проблема с моим кодом, PLZ?

+0

почему бы вам не сделать 'var_dump' из ваших '$ _POST' и посмотреть, какова структура, которую вы зацикливаете? – Pevara

+0

также нет необходимости в скрытом поле, вы можете просто сделать '', намного проще – Pevara

ответ

2

Если $student.id является уникальным, возможно, вы должны рассмотреть что-то вроде:

<input type="text" name="mark[{$student.id}]" size="5" /> 

Это даст вам результат в стороне PHP похож на

Array 
(
    [mark] => Array 
     (
      [studentID1] => 14 
      [studentID2] => 60 
      [studentID3] => 89 
     ) 

) 

Поэтому в PHP вы можете сделать это:

foreach($_POST['mark'] as $studentID => $mark){ 
    echo "The student". $studentID ." achieved mark: ". $mark; 
} 
+0

+1 редактировалось мой ответ, чтобы добавить этот подход или аналогичный. – AbraCadaver

+0

точно мои мысли! +1 – Pevara

+0

мое уважение, лучший ответ –

0
foreach ($_POST['id'] as $key => $studentId){ 
    echo $student['id'][$key].$student['mark'][$key]; 
} 

Вы работаете над массивом при объявлении имени = "id []". Если у вас есть два имени «идентификатор []» на форме до поста, оно будет размещено как:

array( 
    'id' => array(
     '0' => '', 
     '1' => '', 
    ); 
); 

Тогда вы должны использовать

foreach ($array['id'] as $key => $value) { 
    echo $array['id'][$key]; //got value 
    echo $array['name'][$key]; //got custom value 
} 
0

Учитывая вы формируете вы хотите что-то вроде этого:

foreach ($_POST['id'] as $key => $id){ 
    echo $id. $_POST['mark'][$key]; 
} 
Смежные вопросы