2017-09-26 25 views
0

我有一個表格&,用戶可以通過單擊圖標計算總和。留在同一頁我使用$_SERVER['PHP_SELF']
金額可以從選項字段中選擇。我的問題是現在:如果用戶選擇f.e. '20'作爲金額,他點擊圖標並計算總和,如何顯示然後在選項字段中選擇'20'?
這裏我的代碼:

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

這是我最好的解決辦法,但顯示2行選項值的兩倍值:

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

如何解決這個問題?謝謝。

回答

0

你的語法全錯了。您不能在echo的中間放置if語句,您需要使用三元表達式。您必須使用==進行比較,而不是=。如果你把一個變量放在單引號內,它將不會被評估。

echo「$ range $ txt」;

+0

我知道我必須清理我的代碼(與==相比,沒有單引號的變量),但在測試期間和我的測試環境中,它正在運行。 我發佈的最後一行代碼只是一個「嘗試」,將所有內容整合到一行中。正如寫道,它不起作用(如果在回聲裏面)。我會用三元的表達來嘗試。 – george