首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中动态地将某些内容追加到变量中?

如何在PHP中动态地将某些内容追加到变量中?
EN

Stack Overflow用户
提问于 2018-06-13 06:41:12
回答 2查看 49关注 0票数 0

我有一个这样的表单:

代码语言:javascript
复制
<?php if (isset($_POST['artist'])) {
      // do something
    } ?>
<form name="admin_on_artist_<?php echo $artist->ID; ?>" action="" method="POST">
    <p class="artist-negative">
        <label for="artist"><input type="checkbox" name="artist_<?php echo $artist->ID; ?>" id="artist_<?php echo $artist->ID; ?>"> Check this?</label>
    </p>
    <button type="submit">Update</button>
</form>

在有问题的页面上,此表单在foreach循环中多次显示。但是,当我提交任何给定的表单时,它会更新所有表单,这不是我想要的。

如何将$artist->ID附加到$_POST['artist'],以便获得类似以下内容:

$_POST['artist_1']以匹配复选框属性?

EN

回答 2

Stack Overflow用户

发布于 2018-06-13 07:01:35

您可以将生成前端表单标记的foreach与处理表单提交的foreach配对。类似于:

代码语言:javascript
复制
<?php
$regex = '/^artist_([0-9]+)$/'
foreach (array_keys($_POST) as $key) {
    if (preg_match($regex,$key,$matches)) {
        $artistId = (int)$matches[1];
        // do something with $_POST[$key] according to $artistId
    }
}

这适用于单个字段提交或多个字段提交。

或者,您可以在JS的前端做一些事情(正如@smith在评论中建议的那样),以确保表单提交总是具有相同的、众所周知的键,用当前提交的内容填充隐藏的表单。使用这种方法时,您必须向包含ID的表单添加另一个字段。

票数 0
EN

Stack Overflow用户

发布于 2018-06-13 23:49:22

这个问题的解决方案比我一开始能够掌握的要简单得多,但基本上我只能这样做,这与我最初的问题的关键区别在于前两行:

代码语言:javascript
复制
<?php $artist_form_id = 'artist_'.$artist->ID;
if (isset($_POST[$artist_form_id])) {
  // do something
} ?>
<form name="admin_on_artist_<?php echo $artist->ID; ?>" action="" method="POST">
    <p class="artist-negative">
        <label for="artist"><input type="checkbox" name="artist_<?php echo $artist->ID; ?>" id="artist_<?php echo $artist->ID; ?>"> Check this?</label>
    </p>
    <button type="submit">Update</button>
</form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50826816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档