2017-04-03 92 views
1

我有一个选择(下拉框)。在每个按钮点击,我想它加载以前保存的位置。我的代码是:php:编辑选中“选择”按钮点击

<select name="myVariables" style="width:150px"> 
<?php 
foreach ($variables as $var) { 
    echo "<option value=\"" . $var . "\"". $var . " </option>";} 
?> 
</select> 

我有一个变量$ previouslySelected,并且每次点击该按钮时,该变量都可以改变。我还想将选择框中的当前选定选项更改为相同的值。我试过:

echo "<option value=\"" . $var . "\" <?=$previouslySelected==$var ? ' selected=\"selected\"' : '';?\>>". $var . " </option>";} 

但这似乎不起作用。我试过this,但它只在第一次使用。

回答

0

你如何提交表格。使用GET还是POST?

用GET,比你必须提交的值以这样的方式

$previouslySelected = isset($_GET['myVariables']) ? $_GET['myVariables'] : ''; 

否则用POST:

$previouslySelected = isset($_POST['myVariables']) ? $_POST['myVariables'] : ''; 

在PHP 7,你也可以这样做:

$previouslySelected = $_POST['myVariables'] ?? ''; 

编辑:写你的回声更具可读性。

$selected = ($previouslySelected === $var) ? ' selected="selected"' : ''; 
echo '<option value="' . $var . '" ' . $selected . '>' . $var . '</option>'; 
+0

嗯,我设置之前选择,并希望根据先前选择,而不是其他方式改变我的变量? – user1418018

+0

我在你的代码中看不到你正在设置任何'$ previouslySelected'。如果我理解你的话,你想用'$ previouslySelected'的内容填充你的下拉菜单。对? –

+0

@ user1418018检查我的编辑,也许你只有一个错字。无效的HTML也可能导致您的问题。 –