【问题标题】:How to get values from POST method for dynamic number of Div fields - PHP如何从 POST 方法中获取动态数量的 Div 字段的值 - PHP
【发布时间】:2018-06-04 13:41:21
【问题描述】:

想象一下这个 div;此 div 将根据用户偏好使用添加更多按钮进行复制。

<div id='work'>
    <input type="text" placeholder="x" name="work_x[]" />
    <input type="text" placeholder="y" name="work_y[]" />
    <input type="text" placeholder="z" name="work_z[]"/>
</div>

示例输入数据为:

IT 实习生
ABC 解决方案
6 个月

初级 IT 执行官
CDE公司
1年

等等……

在使用 PHP 的后端提交时,我需要将值获取到一个数组中,例如:

[[IT intern , ABC solutions, 6 Months] , [Jr IT exec, CDE company, 1 year]]

任何帮助将不胜感激。

【问题讨论】:

  • 酷!那你试过什么? SO 不是免费为您提供代码的服务。展示您尝试过的方法以及您遇到的具体问题,我们很乐意帮助解决这些问题!
  • 提示,这些值的 _POST 变量将是您需要经过的数组。
  • 另外,不要给 div id 工作,如果你有重复的元素,给它一个类
  • 嗨 loek 我已经尝试了可用于获取动态字段数的解决方案,如果它只是重​​复相同的字段;例如:如果只有一个字段重复,我可以使用单个 foreach 循环获取 POST 值。但是由于这些重复的 div 具有相互关联的值,所以我有点卡在如何使用循环将它们放到单个数组中。
  • delboy1978;在我创建的 JS 中,我使用 'work' + var 为重复 div 分配了一个新 id。所以我猜这不会是一个问题:)

标签: php arrays list post


【解决方案1】:

假设第一个输入(work_x)是强制性的,这样应该很好:

$i=0;
$data=[];
foreach($_POST['work_x'] as $val) {
    $data[$i]['work_x'] = $val;
    $data[$i]['work_y'] = $_POST['work_y'][$i];
    $data[$i]['work_z'] = $_POST['work_z'][$i];
    $i++;
}

或者更简单并且在数组中没有命名键

$i=0;
$data=[];
foreach($_POST['work_x'] as $val) {
    $data[] = [$val, $_POST['work_y'][$i], $_POST['work_z'][$i]];
    $i++;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2014-08-26
    • 1970-01-01
    相关资源
    最近更新 更多