【发布时间】:2017-09-26 16:37:39
【问题描述】:
我制作了一个留言簿表单,它使用 fwrite() 将数据提交到 .txt 文件。然后在一个单独的 .php 文件中打开 .txt 文件,分解数据,然后使用 foreach 循环在表格中显示项目。
这就是我的问题所在,我设法使我的所有数据项都出现在新行中,所有这些新行都保存在我的(3 X Infinite,因为它是由用户签署留言簿而构建的)表的第一列中。
我知道有使用计数器和模数的 for() 和 if() 方法 - 但我无法正确放置它们。要么我不小心导致表格中没有显示任何内容,要么所有内容都显示在一行中,所有内容都在一个单元格中。我找到了很多关于如何使用声明的数组执行此操作的示例,但我无法弄清楚如何在动态意义上应用它。
我的代码:
<?php echo "<h3><center><u>Review What You've Posted</u></center></h3>";
?>
<?php
$firstName = $_POST['firstName'];
echo "<u>Your Name:</u> " .$firstName. "<br><br>";
$yourEmail = $_POST['yourEmail'];
echo "<u>Your Email:</u> " .$yourEmail. "<br><br>";
$yourComments = $_POST['yourComments'];
echo "<u>What You Thought:</u> " .$yourComments. "<br>";
"<br>";
$guestBook = fopen('guestBookData.txt', 'a+');
$outputstring = $firstName . ':' . $yourEmail . ':' . $yourComments
. ':' . "\r";
fwrite($guestBook,$outputstring);
fclose($guestBook)
?>
</main>
这是由以下人员调用的:
<main class="Main Body BG" id="wrapper">
<table style="width:100%" border="3" cellpadding="3">
<caption>Previous Visitors</caption>
<br>
<tr>
<td bgcolor="#FBB2EA" align="center"> Name </td>
<td bgcolor="#FBB2EA" align="center"> Email </td>
<td bgcolor="#FBB2EA" align="center"> Comments </td>
</tr>
<?php
$guestBook = fopen('guestBookData.txt', 'r');
if($guestBook){
while(($dataString=fgets($guestBook)) !==false){
$dataField = explode(':', $dataString);
foreach($dataField as $df){
echo "<tr><td>".$df."</td></tr>";
}
}
fclose($guestBook);
}
?>
</table>
</main>
【问题讨论】:
标签: php foreach html-table iteration