1

私はphpを初めて使用し、答えを見つけるために何日も苦労してきました。フォーム内のwhileループを使用して動的に作成された学生のリストがあります。次に、入力ボックスを追加して、そこに成績を送信できるようにしました。これはうまく機能します。

<form action="<? $_SERVER['PHP_SELF']; ?>" method="POST" name="assignments" id="assignments">
<?php

while($row_students = mysql_fetch_array($students))
{ ?>
    <input grade="grade[]" type="text" size="3" />
    <? echo $row_students['student_number'];?> 
    <input name="student_id[]" type="hidden" value="<? echo $row_students['student_number']; ?>" /> 

    <? echo $row_students['student_name'] ; ?>
    <input name="assignment_name[]" type="hidden" value="<? echo $row_assignments['assignment_name'];?>" /><br/>
    <? }

?>
<br/>
<input name="submit" type="submit" value="submit" />
| <a href="index.php">Cancel</a>
</form>

投稿データをprint_rすると、次のようになります。

Array
(
[0] => Array
    (
        [0] => assignment 1
        [1] => assignment 1
        [2] => assignment 1
        [3] => assignment 1
        [4] => assignment 1
        [5] => assignment 1
        [6] => assignment 1
        [7] => assignment 1
    )

[1] => Array
    (
        [0] => 432100312
        [1] => 432100351
        [2] => 432100353
        [3] => 432100354
        [4] => 432100355
        [5] => 433536343
        [6] => 436253636
        [7] => 473634728
    )

[2] => Array
    (
        [0] => 21
        [1] => 21
        [2] => 33
        [3] => 42
        [4] => 15
        [5] => 26
        [6] => 37
        [7] => 18
    )

)。

私の問題は2つあります。私はそれがこのように表示されるべきだと思います:

[0] => Array
(
[0] => assignment 1
[0] => 432100312
[0] => 21
)

このデータを使用して、次のフィールド(assignment_name、student_id、および_grade)を持つデータベースに各セットを挿入したいので。

私はまた、何の役にも立たないようにいくつかの挿入ループを試したので、この投稿。

4

3 に答える 3

0

次のコードを試すことができます

$arrNew = array();
  foreach ($arr as $value) {
      foreach ($value as $key=>$value) {
          $arrNew[$key][] = $value;
       }
  }

$arr が基本配列であると考えてください

于 2012-10-12T06:39:24.590 に答える
0

ここで大雑把な推測をしただけですが、私はしばらく前に似たようなことをしたと思います. 以下は次のようなprint_rになります: Array ( [student] => Array ( ['name'] => dfsdfsdf ['id'] => 3 ['so'] => 4 ) )

<form method="post" action"#">
    <input name="student['name']" type="text" size="3" />
    <input name="student['id']" type="hidden" value="3" /> 
    <input name="student['so']" type="hidden" value="4" />
    <input type="submit" />
</form>

あなたの場合

<form action="assignments.php" method="POST" name="assignments" id="assignments">
<?php

while($row_students = mysql_fetch_array($students))
{ ?>
    <input name="student['grade']" type="text" size="3" />
    <? echo $row_students['student_number'];?> 
    <input name="student['id']" type="hidden" value="<? echo $row_students['student_number']; ?>" /> 

    <? echo $row_students['student_name'] ; ?>
    <input name="student['assignmentName']" type="hidden" value="<? echo $row_assignments['assignment_name'];?>" /><br/>
    <? }

?>
<br/>
<input name="submit" type="submit" value="submit" />
| <a href="index.php">Cancel</a>
</form>

コードIEを短縮しないようにしてください。それは単なる悪い習慣です:D

于 2012-10-12T06:44:41.513 に答える
0

以下のコードは問題なく動作します。

<form action="assignments.php" method="POST" name="assignments" id="assignments">
<?php
$key = 0;
while($row_students = mysql_fetch_array($students))
{ ?>
    <input name="student[<? echo $key ?>][grade]" type="text" size="3" value=""/>
    <? echo $row_students['student_number'];?> 
    <input name="student[<? echo $key ?>][student_id]" type="hidden" value="<? echo $row_students['student_number']; ?>" /> 

    <? echo $row_students['student_name'] ; ?>
    <input name="student[<? echo $key ?>][assignment_name]" type="hidden" value="<? echo $row_assignments['assignment_name'];?>" /><br/>
    <? $key++;}

?>
<br/>
<input name="submit" type="submit" value="submit" />
| <a href="index.php">Cancel</a>
</form>

このコードは、必要な配列を生成します。

于 2012-10-12T07:06:36.597 に答える