更新php变量并在页面刷新时选择选项

时间:2014-04-17 00:55:06

标签: javascript php html

我有一个php变量

$cur_selection='one';

我目前的默认值为'one',如上所示。

我有一个下拉选择称为课程和一个按钮,我希望默认情况下从第一个选项开始。

<select id='courses'>
<option value='one'>Select Option</option>
<option value='two'>two</option>
<option value='three'>three</option>
</select>

<button onclick="RefreshpageAndChangeVariableandSelector()">Click Me!</button>

如您所见,列表中填充了具有值的选项。

选择默认选项以外的选项,然后单击我希望页面刷新的按钮,将$ cur_selection的值更新为所选选项的值,同时更改courses drop中的选项向下菜单到点击前选择的内容。

然而,我无法将RefreshpageAndChangeVariableandSelector()放入我需要做的事情

对于这个解决方案,我不打算使用AJAX,而是刷新页面

1 个答案:

答案 0 :(得分:2)

使用刷新(我能想到的)唯一真正的答案涉及查询参数。这将涉及一些伪代码,但它应该让你开始。如果您仍有疑问,请发表评论,我可以更新我的答案:)

<强>的Javascript

function RefreshpageAndChangeVariableandSelector(value)
{
    value = encodeURIComponent(value);
    window.location.href = window.location.href + '?selected=' + value;
    // Note, this needs more logic (in case the page is already ?selected=one)
}

<强> PHP

$default_value = 'one';
$cur_selection = !empty($_GET['selected']) ? $_GET['selected'] : $default_value;

Javascript函数将获取一个值(或者您可以编写逻辑来确定该值)并使用encodeURIComponent对其进行编码。然后它会将其作为查询参数selected附加。这部分需要更多逻辑,以确保我们不存在?已经存在或为selected发送2个不同的值。如果你在这里迷路了,请告诉我,我会帮忙的。通过更新window.location.href,Javascript将使用浏览器发出新的GET请求(技术上不是刷新)。

PHP使用shorthand conditional来确保$_GET['selected']不是empty()。这是必要的,因为如果您在未发送$_GET['selected']时查找$default_value = 'one'; // This... $cur_selection = !empty($_GET['selected']) ? $_GET['selected'] : $default_value; // Is the same as... if(!empty($_GET['selected'])) { $cur_selection = $_GET['selected']; } else { $cur_selection = $default_value; } // And can also work like... $cur_selection = $default_value; if(!empty($_GET['selected'])) { $cur_selection = $_GET['selected']; } ,则会出现异常。如果它为空,我们将回退到默认值。


<强>更新

{{1}}