嘿,我在页面中有一个表单,表单中有许多动态添加的复选框。所以我不知道这个号码 看下面的代码:
<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”的复选框和类似“1222xsome text”的值。我想得到那些文本框的所有值,并显示这样的一些文本,一些text2,一些text3 ......
一些文本,一些text2,一些text3是我们可以通过从复选框的值中减去一些字符直到第一次出现来获得的值。
在第二页上我有像
这样的代码 $selecteddocx = (isset($_POST['selecteddocx']) ? $_POST['selecteddocx'] : '');
我想我可以通过为每个循环使用一些来实现它
答案 0 :(得分:2)
if( isset($_POST['selecteddocx'] ) ){
foreach($_POST['selecteddocx'] as $value){
if (($pos = strstr($value, 'x')) !== false) {
$value = substr($pos, 1);
}
echo $value;
}
}
以逗号分隔列表打印的示例:
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'] ));
}
对于两个单独的列表:
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);
}
答案 1 :(得分:0)
删除第一个'x'以及在使用array_map
将新值映射到另一个数组之前发生的所有事情。
$values = array_map(function($v) {
$pieces = explode('x',$v);
unset($pieces[0]); //remove everything before 1st 'x'
return implode('x',$pieces);
},$_POST['selecteddocx']);
要打印以逗号分隔的列表,您可以在新阵列上使用implode
,并使用逗号作为粘合剂。
print implode(', ',$values);