显示$ _SERVER [' PHP_SELF']后选择的选项

时间:2017-09-26 21:34:35

标签: php html mysql

我有一个表格&表格,用户可以通过单击图标来计算总和。为了保持同一页面,我使用$_SERVER['PHP_SELF']
可以从选项字段中选择金额。我现在的问题是:如果用户选择f.e. ' 20'作为金额,他点击图标并得到总和计算,如何显示然后' 20'在选项栏中选择?
这里我的代码:

<?php
if(isset($_POST['lvl4order'])){
$lvl4ord = $_POST['lvl4order'];
} ?>        

这是我的最佳解决方案,但在选项值中显示两行中的两倍:

    <form name="calculation" method="post" action="<?php echo $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']; ?>">
<table>
<td>
<?php
if ($product['lvl4'] > 1)
    {
    echo "<select name='lvl4order'>";
$span = range(1,$product['lvl4']);
    foreach ($span as $range) {
    $txt = $range == 1 ? 'Box' : 'Boxes';
    echo "<option value='$range' >$range $txt</option>";
    echo "<option selected='selected'>$lvl4ord</option>";
    if (++$range == 50) break;
}
echo "</select>";
}
else {}
?>
</td>
<td><INPUT TYPE="image" SRC="../images/calculator.png" NAME="calc">
</td>
    </table></form>        

如果我尝试这样的话,它就不起作用了:

echo "<option value='$range' if($range= '$lvl4ord'){ selected='selected'} >$range $txt</option>";    

如何解决此问题?谢谢。

1 个答案:

答案 0 :(得分:0)

你的语法都错了。您无法在if的中间放置echo语句,您需要使用三元表达式。您必须使用==进行比较,而不是=。如果你把一个变量放在单引号中,它就不会被评估。

echo&#34; $ range $ txt&#34 ;;