在 PHP 内设置下拉列表值 Echo

Set dropdown list value inside PHP Echo

我在 dropdown list 的 select 值上遇到问题。

我试过的:

因为目前我在纯 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>

在这种情况下,它应该 select 数字 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 来完成任务的原因。有没有人有类似的问题?

感谢抽出宝贵时间,祝你有愉快的一天。

让我们试试这个

<?php $temp_val = 3; ?> 
<td> 
    <select>
        <?php
            For($i=0;$i<=5;$i++){
        ?>
            <option value="<?= $i; ?>" <?php if($temp_val == $i) echo("selected")?>>
                <?= $i ?>
            </option> 
        <?php } ?>
    </select>
</td>

编码愉快:)

为了便于理解,我必须告诉您两件事:

首先,不需要在echo里面使用echo,只用一次即可。

其次,不能在单引号内使用单引号,也不能在双引号内使用双引号。但是,如果你想这样做,你必须添加反斜杠。像这样echo "<option value=\"$value\">$text</option>";

对于你上面的问题,我推荐使用function。您可以创建一个函数来选择选项值。

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>";
?>

希望对您有所帮助。

由于单引号,您的代码没有回显第二个选择,只需执行以下操作:

 <?php if($temp_val == '1') echo('selected')?>

所有选项需要 'selected'。 我真的很喜欢从 HTML 中取出逻辑,但是在这种情况下,它会导致定义多个变量。我想这取决于你个人的喜好。

希望对您有所帮助!