【发布时间】:2015-09-21 23:35:54
【问题描述】:
我正在尝试通过选择选项设置瞬态 (API reference)。如果我设置瞬态而不重定向到另一个页面,只需将其设置为重定向到自身,然后设置瞬态,当我手动输入我应该重定向到的页面的 URL 时,它就会显示出来。
但是,如果我直接重定向,它不会记录我已设置瞬态。我得出的结论是,我如何从选择元素中获取变量是问题所在,因为如果我只是将普通字符串作为瞬态,它的工作原理就像它应该的那样,例如(在第一页):
set_transient('transient_test', "this is a test", 60 * 30);
以下是我从选择元素中获取变量的方法(在第一页):
if (isset($_POST['industry']) == true) {
$selectOption = $_POST['industry'];
set_transient('industry_transient', $selectOption, 60 * 30);
}
我测试瞬态是否是我想要的变量(在第一页):
if (isset($_POST['industry']) == true) {
$selectOption = $_POST['industry'];
set_transient('industry_transient', $selectOption, 60 * 30);
$selected = get_transient('industry_transient');
echo $selected;
}
这是我获得瞬态的方法(第 2 页):
$transient = get_transient('industry_transient');
我这样测试它,当我立即重定向时总是得到“无瞬态”(第 2 页):
if (false === ($value = get_transient('industry_transient'))) {
echo 'no transient';
}
if (true === ($value = get_transient('industry_transient'))) {
echo 'yes transient';
}
这是我的表格(第一页):
<form method="post" action="http://localhost:8888/wordpress/candidates/industry">
<select name="industry">
<option disabled selected> -- Select an industry -- </option>
<option value="Example">there are a lot of options...</option>
</select>
<input type="submit" value="Submit">
</form>
我尝试在表单标签中设置瞬态,但是没有任何区别。
【问题讨论】:
-
重定向时是否确认选择值在您的 POST 中?我肯定会确认,当您提出问题是否是问题时。另外,瞬态代码在设置瞬态代码的正下方,对吗?很难判断它是否在同一个文件中,以及放置代码的顺序..
-
嘿,我编辑了我的问题
-
表单重定向是指向第一页还是第二页?
-
表单指向第二页,是第一页的子页。