php - 需要使用 foreach() 的语法帮助来发布输入

标签 php forms post for-loop foreach

我显然是一名编码新手,并且我一直在阅读各种试图完成以下任务的帖子:

我有一个包含大量 <textarea> 的表单输入字段,150 行和三列(它们是 <textarea> 的原因与我不会详细介绍的特殊 javaScript 功能有关,但它必须是 <textarea>)。

这是它的外观截图(但一直到 150):

form capture in browser

我将表单发布到另一个页面,当然是 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/

相关文章:

html - 如何水平显示这些输入字段?

MVC 应用程序中的 Ajax Post 参数始终为空

php - 使用ajax如何将变量传递给两个不同的php脚本

json - POST 请求后在 swift 模型中访问值的问题

php - Laravel 迁移 : Foreign key constraint is incorrectly formed

php - MySQL 读取/修改/写入字段的替代方案

php - 如何在group by语句中使用order by子句

php - 按时间对数据库行进行分类

mysql - MS Access VBA 从表单写入表

需要 php 空字段