我已经在wordpress网站中设置了一个货币转换下拉菜单。唯一缺少的是,每次我加载另一个页面时,货币都会重置,因为表单选择被"遗忘"。
任何想法如何做到这一点?我尝试了我在这里看到的建议 js cookie,但它不起作用。
这是我到目前为止得到的:
<form name="myform" id ="myform" method="post">
<select name="currency-select" id="sort" onchange="submitform();">
<option value="" selected="selected">Currency</option>
<option value="0">U.S Dollars (USD)</option>
<option value="1">Euros (EUR)</option>
<option value="2">British Pounds (GBP)</option> `
</select>
</form>
.js:
function submitform()
{
document.myform.submit();
}
我尝试按照此处的建议使用此代码,但它对我来说并不真正有效,我认为我没有以正确的方式做到这一点 -
<?php
`session_start();`
if (isset($_POST['currency-select'])) {
$_SESSION['sort'] = $_POST['sort'];
}
?>
我也在表单中添加了 _SESSION 美元:
<option value="0" <?php if($_SESSION['sort'] == "0") echo "selected";?>>U.S Dollars (USD)</option>
更新
我做了一些测试。会话似乎已保存(因为我在刷新等时在几页上回显了它)我想现在唯一的问题与表单本身有关。即使有正确的会话号,我也无法让它选择正确的选项。
我尝试了两种方法,但都不起作用:
<option value="0" <?php if($_SESSION['currency-select'] == "0") echo 'selected="selected"';?>>U.S Dollars (USD)</option>
或
<option value="0" <?php if($_SESSION['currency-select'] == "0") echo "selected";?>>U.S Dollars (USD)</option>
我会将所选值存储在$_SESSION['selected_currency']
变量和交叉检查中,并在下拉列表中填充货币列表时选择它。
假设会话正常工作,我将使用如下所示的内容来保持在您的下拉列表中选择货币。
<select name="currency">
<?php
foreach($currency as $value){
if($value->currency_code == $_SESSION['currency']){
echo "<option value='$value->currency_code' selected='selected'>$value->currency_name</option>";
} else {
echo "<option value='$value->currency_code'>$value->currency_name</option>";
}
}
?>
</select>
可能有更短的方法,我用它来说明目的。
对于永久保留数据,您只有几种可能性,最容易实现的是 $_SESSION、$_COOKIE 或数据库中。
您有两种选择可以执行此操作
第一种是向options.php
页面添加一个字段并保存您的数据,然后从options.php
中取回您必须使用update_option('nameOfField_form','nameOfFieldDb');
和get_option('nameOfFieldDb')
的数据。
第二个选项是通过jquery.ajax();
方法将数据保存在options.php
您可能会发现这些链接对法典很有帮助
get_option
update_option