我有一张表格来记录一组项目的工作时间。该表单使用项目 ID、小时数和注释字段的数组,表单行是项目数量的循环。该表单将数据传递给 PHP 脚本进行处理。 PHP 脚本没有看到数组中的值...它只是给我“Array”作为输出。
文档和其他示例让我想知道我是否必须序列化或反序列化或其他方法才能使事情正常工作,但多次尝试均不成功。
形式为:
<form action="input-hours-do.php" method="post">
<table>
<tr>
<td>Project</td>
<td>Hours</td>
<td>Notes</td>
</tr>
<?
// assign project IDs
$rhprID[0] = "ABT";
$rhprID[1] = "GHUR";
$rhprID[2] = "TRE";
$rhprID[3] = "WERT";
// loop on the projects
for ($i = 0; $i < 3; $i++)
{
?>
<!-- project id is not editable -->
<input type="hidden" name="rhprID[]" value="<? echo $rhprID[$i]; ?>" />
<tr>
<td>
<?php echo $rhprID[$i] ?>
</td>
<td>
<input type="text" name="rhHours[]" size="6" />
</td>
<td>
<input type="text" name="rhNotes[]" size="40" />
</td>
</tr>
<?
} // end of i for loop
?>
</table>
<input type="submit" name="tUpdate" size="8" value="Submit Hours" />
</form>
在操作脚本(input-hours-do.php)中:
$rhprID = $_POST['rhprID'];
$rhHours = $_POST['rhHours'];
$rhNotes = $_POST['rhNotes'];
echo "count of prid is " . count($rhprID) . "</br>";
for ($k = 0; $k < count($rhprID); $k++)
{
echo " prID is: " . $rhprID[$k] . " hours are: " . $rhHours[$k] . " notes are: " . $rhNotes[$k];
}
?>
输出是:
rhprid 的计数为 1
prID 为: A 小时为:A 注释为:A
So:
- 它似乎认为数组只有 1 个元素长
- 它没有获取数组中的值(“A”是“Array”的第一个字母,因此它只使用字符串变量,而不是基础数据值)。
我需要更改什么才能获取基础数据值?
将 php 代码放入<?php ?>
不标记<? ?>
,那就没问题了:
<form action="input-hours-do.php" method="post">
<table>
<tr>
<td>Project</td>
<td>Hours</td>
<td>Notes</td>
</tr>
<?php /* changed <? to <?php */
// assign project IDs
$rhprID[0] = "ABT";
$rhprID[1] = "GHUR";
$rhprID[2] = "TRE";
$rhprID[3] = "WERT";
// loop on the projects
for ($i = 0; $i < 4; $i++) /* changed $i<3 to $i<4 */
{
?>
<!-- project id is not editable -->
<input type="hidden" name="rhprID[]" value="<?php /* changed <? to <?php */ echo $rhprID[$i]; ?>" />
<tr>
<td>
<?php /* changed <? to <?php */ echo $rhprID[$i] ?>
</td>
<td>
<input type="text" name="rhHours[]" size="6" />
</td>
<td>
<input type="text" name="rhNotes[]" size="40" />
</td>
</tr>
<?php /* changed <? to <?php */
} // end of i for loop
?>
</table>
<input type="submit" name="tUpdate" size="8" value="Submit Hours" />
</form>
并在 input-hours-do.php 文件中写入以下代码:
<?php /* changed <? to <?php */
$rhprID = $_POST['rhprID'];
$rhHours = $_POST['rhHours'];
$rhNotes = $_POST['rhNotes'];
echo "count of prid is " . count($rhprID) . "</br>";
for ($k = 0; $k < count($rhprID); $k++)
{
echo " prID is: " . $rhprID[$k] . " hours are: " . $rhHours[$k] . " notes are: " . $rhNotes[$k];
}
?>
更新:你有 4 个项目 id,所以你必须在 for 循环中编辑 $i 使其小于 4 而不是 3,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)