首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取多个复选框的值,然后通过foreach循环打印它们。

获取多个复选框的值,然后通过foreach循环打印它们。
EN

Stack Overflow用户
提问于 2015-08-01 16:54:22
回答 2查看 195关注 0票数 1

嘿,我在页面中有一个表单,其中表单中有很多复选框,这些复选框都是添加的dynamically.So,我不知道数字,请看下面的代码:

代码语言:javascript
复制
 <form action="" method="" style="margin:0px;" onsubmit="return sharedocxss();" id="share90_FORMh8">
<?php while($the_DEATA_ARE_90=mysqli_fetch_array($getDOCS_30all)){ ?>
<div class="This_LISy_Lisy678" id="MAINDIV_DELEE<?=$the_DEATA_ARE_90['dcid']?>">
<div class="CHeck_IS_BOC">
<input type="checkbox" name="selecteddocx[]" value="<?=$the_DEATA_ARE_90['dcid']?>x<?=$the_DEATA_ARE_90['name']?>" id="check_docname<?=$the_DEATA_ARE_90['dcid']?>"/>
</div>

在下一页中,可能会有名称为“selecteddocx”的复选框和类似于‘1222xome文本’的值。我想得到这些文本框的所有值,像这样显示一些文本,一些text2,一些text3 .

一些文本、一些text2、一些text3是从复选框的值中减去一些字符直到第一次出现x时才能得到的值。

在第二页,我有如下代码

代码语言:javascript
复制
 $selecteddocx = (isset($_POST['selecteddocx']) ? $_POST['selecteddocx'] : '');

我想我可以为每个循环使用一些

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-01 16:58:18

代码语言:javascript
复制
if( isset($_POST['selecteddocx'] ) ){
    foreach($_POST['selecteddocx'] as $value){
        if (($pos = strstr($value, 'x')) !== false) {
            $value = substr($pos, 1);
        }
        echo $value;
    }
}    

示例以逗号分隔列表形式打印:

代码语言:javascript
复制
function preparetext($value){
    if (($pos = strstr($value, 'x')) !== false) {
        $value = substr($pos, 1);
    }
    return $value;
}

if( isset($_POST['selecteddocx'] ) ){
    echo implode(",", array_map("preparetext",$_POST['selecteddocx'] ));
} 

关于两份单独的清单:

代码语言:javascript
复制
if( isset($_POST['selecteddocx'] ) ){
    $a = array();
    $b = array();

    foreach($_POST['selecteddocx'] as $value){
        $str = explode("x",$value,2);
        $a[] = $str[0];
        $b[] = $str[1];
    } 

    echo  implode(",", $a);
    echo  implode(",", $b);
}
票数 2
EN

Stack Overflow用户

发布于 2015-08-01 17:07:58

若要删除第一个'x‘和它之前发生的一切,请使用array_map将新值映射到另一个数组。

代码语言:javascript
复制
$values = array_map(function($v) {
    $pieces = explode('x',$v);
    unset($pieces[0]); //remove everything before 1st 'x'
    return implode('x',$pieces);
},$_POST['selecteddocx']);

要打印逗号分隔列表,可以在新数组上使用implode,用逗号作为粘合剂。

代码语言:javascript
复制
print implode(', ',$values);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31764012

复制
相关文章

相似问题

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