我在dropdown list
的选择值上遇到问题。
我尝试过的事情:
目前,我在纯html
和一些php
内部没有问题设置值
为了设置值。如本例所示:
<?php $temp_val = 3; ?>
<td>
<select>
<option value="1" <?php if($temp_val == "1") echo("selected='selected'")?>>1</option>
<option value="2" <?php if($temp_val == "2") echo("selected='selected'")?>>2</option>
<option value="3" <?php if($temp_val == "3") echo("selected='selected'")?>>3</option>
<option value="4" <?php if($temp_val == "4") echo("selected='selected'")?>>4</option>
<option value="5" <?php if($temp_val == "5") echo("selected='selected'")?>>5</option>
</select>
</td>
在这种情况下,它应该选择数字3,结果的确像这样工作:
如此处所示,纯html
和某些php
的所有内容都能按预期工作。
问题
当前,我想在php echo()
中使用相同的逻辑,这意味着我需要将PHP代码放入echo
的php代码中。如我所研究,here不可能。
正如我试图在php echo code
内部实现的那样,结果是:
<?php
$temp_val = 3;
echo "<td>
<select>
<option value='1' <?php if($temp_val == '1') echo('selected='selected'')?>1</option>
<option value='2' <?php if($temp_val == '2') echo('selected='selected'')?>2</option>
<option value='3' <?php if($temp_val == '3') echo('selected='selected'')?>3</option>
<option value='4' <?php if($temp_val == '4') echo('selected='selected'')?>4</option>
<option value='5' <?php if($temp_val == '5') echo('selected='selected'')?>5</option>
</select>
</td>";
?>
合并时,我从"
到'
做了一些细微的更改,因为它可能会干扰回声。在这一点上,一定有问题。结果就是这样:
至于为什么它显示了其中的3个,因为我需要用echo和php循环,这就是我无法使用纯html完成任务的原因。有人有类似的问题吗?
感谢您的时间,并祝您愉快。
答案 0 :(得分:2)
让我们尝试一下
sls offline start
快乐编码:)
答案 1 :(得分:1)
为了理解,我必须告诉您两件事:
首先,您不需要在echo内部使用echo,只需使用一次即可。
第二,您不能在单引号内使用单引号或在双引号内使用双引号。但是,如果要这样做,则必须添加反斜杠。像这样echo "<option value=\"$value\">$text</option>";
对于上述问题,我建议使用功能。您可以创建一个函数来选择选项值。
function set_selected($val1, $val2) {
if ($val1 == $val2) {
echo 'selected="selected"';
}
}
然后,在您的代码中:
<?php
$temp_val = 3;
echo "<td>
<select>
<option value='1' set_selected($temp_val, '1') >1</option>
...
</select>
</td>";
?>
希望这可以为您提供帮助。
答案 2 :(得分:0)
由于单引号,您的代码没有回显选择的第二个,只需执行以下操作:
<?php if($temp_val == '1') echo('selected')?>
所有选项需求均已“选中”。 我真的很喜欢从HTML中删除逻辑,但是在这种情况下,它将导致定义多个变量。我想这取决于您的个人喜好。
我希望这会有所帮助!