在PHP Echo中设置下拉列表值

时间:2018-08-30 01:57:40

标签: php html drop-down-menu echo

我在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,结果的确像这样工作:

enter image description here

如此处所示,纯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>";
?>

合并时,我从"'做了一些细微的更改,因为它可能会干扰回声。在这一点上,一定有问题。结果就是这样:

enter image description here

至于为什么它显示了其中的3个,因为我需要用echo和php循环,这就是我无法使用纯html完成任务的原因。有人有类似的问题吗?

感谢您的时间,并祝您愉快。

3 个答案:

答案 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中删除逻辑,但是在这种情况下,它将导致定义多个变量。我想这取决于您的个人喜好。

我希望这会有所帮助!