我显然是一名编码新手,并且我一直在阅读各种试图完成以下任务的帖子:
我有一个包含大量 <textarea>
的表单输入字段,150 行和三列(它们是 <textarea>
的原因与我不会详细介绍的特殊 javaScript 功能有关,但它必须是 <textarea>
)。
这是它的外观截图(但一直到 150):
我将表单发布到另一个页面,当然是 PHP,我想在其中做三件事:
1) 显示某些参数的摘要(提交日期、总数、计数等)
2) 以某种方式使用循环分配与所有 450 个总输入一致的变量
3) 创建、保存并创建一个链接,供用户下载包含数据的 CSV 文件。
第 1 步)如果已经完成,就没有戏剧了
第 3 步)我很确定我可以锻炼,因为有很多关于用 php 编写文件的好教程。
第 2 步是我不知所措的地方。
同样需要注意的是:
A) 提交表单时并非所有行都需要填写;尽管需要完成单独的一行
B) 循环中的“发布”(正确的词?)需要限制为仅完成的最大行数。所以我不认为直for()
循环将起作用,因为它会返回所有 150 行,即使是空白也是如此。
我一直在玩我在一篇文章中使用 foreach()
找到的一些代码。 , 来自 this post .
这是我用 Frankenstein 组合在一起的代码,它返回正常(仅针对第一列{我们称之为 column_A},并且它受限于使用 column_A 作为标尺的填充字段数。
foreach($_POST as $name => $inputA) {
if(strpos($name, 'column_A')===0) {
if($inputA !== ''){
echo $i , " )" , " " , $inputA , "<br />";
$i++;
}
}
}
所以如果我用一些数据填充 5 行,那么这段代码将返回:
1) A 列
2) A 列二
3) A 列三
4) A 列四
5) A 列五
但我还需要在 column_A 旁边回显 column_B 和 column_C。例如:
1) A 列 , B 列 , C 列
2) A列二 , B列二 , C列二
3) A列三 , B列三 , C列三
4) A 列四 , B 列四 , C 列四
5) A 列五 , B 列五 , C 列五
所以也许 en echo 声明如:
echo $i , " )" , " " , $inputA , " " , $inputB, " " , $inputC , "<br />";
我一直在努力阅读 strpos()
和 for()
和 foreach()
在 PHP 手册上,但我几乎不知道在哪里。抱歉拉长了,想画个好图
最佳答案
But I also need to echo also column_B and column_C along side the column_A.
您应该首先为输入字段命名,以便获得更有用的数据结构。
您可以附加方括号以获取 PHP 中的输入值数组 - 您也可以指定要使用的索引:
name="field[0][A]"
name="field[0][B]"
name="field[1][A]"
name="field[1][B]"
尝试一下,然后使用 var_dump($_POST['field'])
查看您从中获得的数据结构。
关于php - 需要使用 foreach() 的语法帮助来发布输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16851997/