首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:当多个表单字段共享相同的名称和id时使用post

PHP:当多个表单字段共享相同的名称和id时使用post
EN

Stack Overflow用户
提问于 2010-11-19 21:57:43
回答 5查看 10.9K关注 0票数 4

这个标题可能没有多大意义,但我拥有的是一个动态生成的表单。我连接到一张产品表上,拉出那里的名字。然后,我创建了一个显示产品的表单,旁边有一个复选框和文本框。

代码语言:javascript
复制
<form id="twitter-feed" name="twitter-feed" action="<?php echo $this->getUrl('tweet/') ?>index/tweet" method="post">
<table><tr>
<?php

$model = Mage::getModel("optimise_twitterfeed/twitterfeed");

$products = $model->getProducts();

foreach ($products as $product){
    echo '<tr>';
        echo '<td>';
            echo '<label for="'. $product .'">' . $product . '</label>';
            echo '<br /><input type="text" class="hashtag" name="tags" id="tags" value="#enter, #product, #hastag"';
        echo '</td>';
        echo '<td><input type="checkbox" name="chk" id="'. $product .'"></td>';
   echo '</tr>';
}
?>

<tr><td colspan="2"><input type="submit" name="submit" value="tweet"></td></tr>
</table>
</form>

如您所见,每条记录都有复选框和文本字段。当我检查表单中的$_POST数据时,它只保留最后一条记录的字段。

有没有一种方法可以将所有这些数据传递回操作?

干杯,

琼斯

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-19 22:00:27

使用name="chk[]",然后PHP将为您创建一个数组。

票数 16
EN

Stack Overflow用户

发布于 2010-11-19 22:02:25

将您的名称arrtibutes改为具有开始和结束方括号,如下所示:

代码语言:javascript
复制
name="tags"
name="chk"

代码语言:javascript
复制
name="tags[]"
name="chk[]"

这将使数组如下所示:

代码语言:javascript
复制
$_POST['tags'][0] = VALUE
$_POST['tags'][1] = VALUE

$_POST['chk'][0] = VALUE
$_POST['chk'][1] = VALUE
票数 6
EN

Stack Overflow用户

发布于 2010-11-19 22:01:30

是的,您可以在name值的末尾设置括号。例如:

代码语言:javascript
复制
<input type="checkbox" name="chk[]" id="'. $product .'">

然后在$_POST['chk']中得到一个数组作为结果。除此之外,ids应该始终是唯一的。您可以使用相同的名称,但应始终使用不同的ids。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4225644

复制
相关文章

相似问题

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