-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 标记向上移动一行,使其实际上位于循环内并删除包含隐藏输入的行。即使你需要那个值,你也不应该为它创建一行;它只会看起来令人困惑。

编辑:我可能应该尝试阅读问题实际上是什么,而不是仅仅看到损坏的代码并尝试修复它。正如其他人现在所说,一旦您完成所有操作,它将以 $_GET['data'] 的形式提交

于 2012-07-08T14:01:32.043 回答