-3

私はここで新しいです。問題があり、非常に急いでいます:(シナリオ:動的入力フォームを作成したい。ユーザーが必要な列と行の数を入力すると、前のフォームに入力された数としてテーブルが生成されます。その後、ユーザー入力テーブルに乱数を入力し、送信ボタンをクリックすると、システムがデータを記録して処理し、最後にシステムが平均を表示します (単なる例です)。

テーブルが正常に生成されました。問題は、入力フォームに入力されたデータをどのように保存/読み取るかです。

これはinput.phpです

<tr> 
<td width="30%" align="left" valign="top">Input the number of columns     :<td      height="37" align="left" valign="top"><input type="text" name="colums" value="" /></td> 
</tr> 
<tr> 
<td align="left" valign="top">Input the number of rows :</td> 
<td width="70%" align="left" valign="top"><input type="text" name="rows" value="" /></td> 
</tr> 
<tr> 
<td align="left" valign="top">&nbsp;</td> 
<td align="left" valign="top"><input type="submit" name="button" id="button" value="Submit" /></td> 
</tr> 
</table> 
</form> 

そして、このような結果のphp..

<?php 
$columns = $_POST['columns']; 
$rows = $_POST['rows']; 

echo "<form method='post' action='process.php'>"; 
echo "<table>"; 

//made the rows 
for ($i= 0; $i <= $rows-1; $i++){ 

//and the colums 
echo "<tr>"; 
for ($j = 0; $j <= $colums-1; $j++) { 

//here is the input form, and each of data inputed here that i want to save it. 
$sum = array('[$i][$j]'); 
echo "<td> </td> 
    <td><input size='5' type='text' name='data".$sum."' /></td> 
"; 

}
echo "</tr>";  
} 


echo "<tr><td></td><td><input type='submit' name='submit' values='Submit' /></td></tr>"; 
//im not sure here in value='$sum' 
echo "<tr><td></td><td><input type='hidden' name='banyak' value='$sum' /></td></tr>"; 
echo "</table>"; 
echo "</form>"; 

// here,which one should i $_GET[''] ? 

?>

そしてprocess.phpはデータからの平均を示しています。私はprocess.phpで完全に間違っていました

4

3 に答える 3

3

これをチェックして:

<?php 
$columns = 3; //test value
$rows    = 2; //test value

echo "<form method='post' action='process.php'>"; 
echo "<table>"; 

//made the columns 
for ($row_idx= 0; $row_idx <=$rows-1; $row_idx++){ 

    //and the rows 
    echo "<tr>"; 
    for ($col_idx = 0; $col_idx <= $columns-1; $col_idx++) { 

    //here is the input form, and each of data inputed here that i want to save it. 
    $sum = array('[$row_idx][$col_idx]'); //??? What's for that?
    echo "<td></td> 
        <td><input size='5' type='text' name='data[{$row_idx}][{$col_idx}]' /></td> 
    "; 

    } 
}

echo "</tr>"; 
echo "<tr><td></td><td><input type='submit' name='submit' values='Submit' /></td></tr>"; 
//im not sure here in value='$sum' 
echo "<tr><td></td><td><input type='hidden' name='banyak' value='$sum' /></td></tr>"; 
echo "</table>"; 
echo "</form>"; 

// here,which one should i $_GET[''] ? 

echo "<PRE>";
print_r($_REUQEST['data']);
echo "</PRE>";

?>
  1. 変数にわかりやすい名前を付ける必要があります。
  2. 入力ファイルに配列のような名前を付ける必要があります。これはphpによって解析されるため、<input name='data[1][2]' value="foo">「到着」します。$data = array('1' => array('2' => "foo"));
于 2012-07-08T14:06:31.490 に答える
0

@Braibaが言ったように

$sum = array('[$i][$j]');

$sum = "[$i][$j]";

そして、あなたは使用します

$my_data = $_GET['data']; 

二次元配列になります。

于 2012-07-08T14:11:12.330 に答える
-2

交換

$sum = array('[$i][$j]');

$sum = "[$i][$j]";

(二重引用符に注意してください)

また、終了trタグを1行上に移動して、実際にループ内に配置し、非表示の入力を含む行を削除します。その値が必要な場合でも、その値の行を作成しないでください。紛らわしいように見えます。

編集:壊れたコードを見て修正しようとするのではなく、おそらく質問が実際に何であるかを読むように努めるべきです。他の人が今言っているように、あなたがすべてを行うと、それは$_GET['data']として送信されます

于 2012-07-08T14:01:32.043 に答える