Я пытаюсь передать значение с одной страницы WordPress на другую через сеанс PHP. У меня есть выпадающий список на обеих страницах, которые идентичны, за исключением значений параметров. Я хотел бы, чтобы выбранный параметр на 2-й странице при загрузке страницы отражал выбранное значение, представленное на первой странице.
Я изучил много вопросов, но не смог найти именно то, что мне нужно. Любая помощь будет принята с благодарностью!
Страница 1:
<?php
if(!isset($_SESSION)) {
session_start();
echo $_SESSION['state'];
$var_value = $_SESSION['state'];
}
?>
<form>
<input type=hidden name="retURL" value="page2.php">
<select id="state" name="state">
<option>State 1</option>
<option>State 2</option>
<option>State 3</option>
</select>
<input type="submit" name="submit" value="Submit">
</form>
Страница 2:
<?php
session_start();
if(isset($_POST['state'])){
$_SESSION['state'] = $_POST['state'];
}
?>
<select>
<option <?php if($var_value == 'State 1') echo 'selected'; ?> value="http://customizedlink">State 1</option>
<option <?php if($var_value == 'State 2') echo 'selected'; ?> value="http://customizedlink">State 2</option>
<option <?php if($var_value == 'State 3') echo 'selected'; ?> value="http://customizedlink">State 3</option>
</select>
Ядро WordPress не использует сессии PHP. Платформа WordPress не имеет состояния и не поддерживает
для использования сессий вне куки, который держит пользователя в журнале
в.
Ядро WordPress не использует сеансы PHP, но иногда они требуются в зависимости от вашего варианта использования, плагина или темы.
Ты можешь использовать WordPress родные сессии PHP плагин, который реализует встроенные обработчики сессий PHP, поддерживаемые базой данных WordPress.
Вы забыли рассказать нам, как вы переходите со страницы 1 на страницу 2. Но давайте предположим, что когда вы SELECT
на странице 1 страница 1 вызывается снова. В этом случае вам нужно переместить $_SESSION['state'] = $_POST['state'];
назначение со страницы 2 на страницу 1. Это должен происходить до Вы переходите на страницу 2.
Кроме того, страница 2 использует то, что называется $var_value
который не установлен нигде в ваших примерах. Вы хотели выполнить $var_value = $_SESSION['state'];
где-то над SELECT
на странице 2?
Если ничего из этого не приводит вас к ответу, пожалуйста, предоставьте больше информации о контексте вашего кода.
Попробуй это. Ваша страница 1 FORM
элемент, при отправке, вызывает страницу 1. Поэтому …
<?php
if(!isset($_SESSION)) {
session_start();
if( isset($_POST['state']) ){
$_SESSION['state'] = $_POST['state'];
}
echo "Page 1: ".$_SESSION['state'];
}
?>
<form method="post">
<input type=hidden name="retURL" value="page2.php">
<select id="state" name="state">
<option>State 1</option>
<option>State 2</option>
<option>State 3</option>
</select>
<input type="submit" name="submit" value="Submit">
</form>
Страница 2
<?php
session_start();
echo "Page 2: ".$_SESSION['state'];
$var_value = $_SESSION['state'];
?>
<select>
<option <?php if($var_value == 'State 1') echo 'selected'; ?> value="http://customizedlink">State 1</option>
<option <?php if($var_value == 'State 2') echo 'selected'; ?> value="http://customizedlink">State 2</option>
<option <?php if($var_value == 'State 3') echo 'selected'; ?> value="http://customizedlink">State 3</option>
</select>
Вы должны увидеть правильное значение для $_SESSION['state']
на странице 2 (после запуска страницы 1) ЕСЛИ Я правильно понял смысл вашего кода.