我有一个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,而是刷新页面
答案 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}}