Php 仅显示第一个和最后一个选项的复选框
下面的代码所做的是检索完整选项类型中的单个选项。例如,如果$option是A-D,那么通过使用explode,它将能够显示每个单独的选项以输出一个bcd 现在在这个例子中,我希望一个bcd每个都有自己的复选框。但对于下面的代码,它只是为A和D创建复选框,它应该为Php 仅显示第一个和最后一个选项的复选框,php,Php,下面的代码所做的是检索完整选项类型中的单个选项。例如,如果$option是A-D,那么通过使用explode,它将能够显示每个单独的选项以输出一个bcd 现在在这个例子中,我希望一个bcd每个都有自己的复选框。但对于下面的代码,它只是为A和D创建复选框,它应该为A,B,C,D创建的第一个和最后一个选项。如何做到这一点 function ExpandOptionType($option) { $options = explode('-', $option); foreach($o
A
,B
,C
,D
创建的第一个和最后一个选项。如何做到这一点
function ExpandOptionType($option) {
$options = explode('-', $option);
foreach($options as $indivOption) {
echo '<p><input type="checkbox" name="options[]" id="option-' . $indivOption . '" value="' . $indivOption . '" /><label for="option-' . $indivOption . '">' . $indivOption . '</label></p>';
}
if(count($options) > 1) {
$start = array_shift($options);
$end = array_shift($options);
do {
$options[] = $start;
}while(++$start <= $end);
}
else{
$options = explode(' or ', $option);
}
return implode(" ", $options);
}
函数ExpandOptionType($option){
$options=分解('-',$option);
foreach($独立期权的期权){
回显“”.$indivOption.“”;
}
如果(计数($选项)>1){
$start=array\u shift($options);
$end=阵列移位($options);
做{
$options[]=$start;
}虽然(+$start嗯,我不太确定函数中的if-else
是做什么的,但是这就是你在想的吗
<?php foreach (range('A','D') as $letter): ?>
<p>
<input type="checkbox" name="options[]" id="option-<?php echo $letter ?>" value="<?php echo $letter ?>" />
<label for="option-<?php echo $letter ?>"><?php echo $letter ?></label>
</p>
<?php endforeach ?>
函数ExpandOptionType($option){
$options=分解('-',$option);
如果(计数($选项)>1){
$start=array\u shift($options);
$end=阵列移位($options);
做{
$options[]=$start;
}(++$start$option
有什么值?放入print\r($options)并检查它有多少个元素。通过执行print$options
,它输出这个数组([0]=>a[1]=>D)
当打印“$option”显示A-D
时,如果$option
是A-D
,则您的代码将创建两个复选框,一个用于optionA
,一个用于optionD
。然后您更改$options
数组的内容,因此您的顺序可能是错误的。else语句是针对哪个选项的ve或
介于两者之间,而不是-
选项并不总是D,它可以是A-C、A-H、A-Z。而如果选项之间有或
,则其为真或假
或为是或否
。如果我使用函数方法,那么括号之间应该放些什么echo ExpandOptionType('A','D'))
那么你应该在你的问题中更详细地解释你的问题。对此我表示歉意,我只是试图提供一个示例,让你知道如何检索选项类型和单个选项。实际上,我只想将B C D作为字符串输出,而不是现在的输出,我想将其作为复选框输出。但是我想要这个对于每一个可能的选择,它必须是动态的
function ExpandOptionType($from, $to) {
$output = '';
$range = range($from, $to);
foreach ($range as $letter) {
$output .= '<p>';
$output .= "<input type=\"checkbox\" name=\"options[]\" id=\"option-{$letter}\" value=\"{$letter}\" />";
$output .= "<label for=\"option-{$letter}\">{$letter}</label>";
$output .= '</p>';
}
return $output;
}
echo ExpandOptionType('A', 'D');
function ExpandOptionType($option) {
$options = explode('-', $option);
if(count($options) > 1) {
$start = array_shift($options);
$end = array_shift($options);
do {
$options[] = $start;
}while(++$start <= $end);
}
else{
$options = explode(' or ', $option);
}
foreach($options as $indivOption) {
echo '<p><input type="checkbox" name="options[]" id="option-' . $indivOption . '" value="' . $indivOption . '" /><label for="option-' . $indivOption . '">' . $indivOption . '</label></p>';
}
return implode(" ", $options);
}