PHP сессия из HTML / Javascript, не содержащая правильное значение - PullRequest
0 голосов
/ 26 мая 2018

У меня есть меню разбивки на страницы PHP.Каждый элемент меню разбивки на страницы содержит элемент.Сценарий разбивки на страницы:

if ($page_count >= 1 && $page <= $page_count) {
    ?><li class="page-item <? if($page == 1){echo "active";} ?>"><? echo '<a onclick="myScript(1)" class="page-link">1</a></li>';
    $i = max(2, $page - 2);
    if ($i > 2)
    {
        echo ' ... ';
    }
    for (; $i < min($page + 2, $page_count); $i++) {
        ?><li class="page-item <? if($i == $page){echo "active";} ?>"><? echo '<a onclick="myScript('. $i .')" class="page-link">' . $i . '</a></li>';
    }
    if ($i != $page_count)
    {
        echo ' ... ';
    }
    ?><li class="page-item <? if($page_count == $page){echo "active";} ?>"><? echo '<a onclick="myScript('. $page_count .')" class="page-link">' . $page_count . '</a></li>';                   
    }

Когда пользователь щелкает элемент списка <a>, я хочу получить значение выбранного элемента и создать сеанс PHP, содержащий этот элемент.Это Javascript, который должен создать сеанс:

function myScript(clicked_id) 
{       
    <? $_SESSION["page"] = "clicked_id"; ?>
    alert(<? echo "$_SESSION[page]"; ?>);
}

Это работает, и в предупреждении Javascript я получаю правильное значение выбранного элемента, например «2», если я щелкнул элемент списка, гдезначение $ i равно «2».

Страница должна обновиться, а затем, когда я проверяю значение сеанса страницы, я ожидаю значение «2».Однако, это не так.Значение на самом деле "clicked_id".

Это код, где я проверяю сеанс:

$page = 1;                                          
if(!empty($_SESSION["page"])) {
    $page = $_SESSION["page"];      
    if($page == 'clicked_id')
    {
        $page = 1;
    }
}

Мой вопрос: почему сеанс не содержит правильное значение?В предупреждении значение верное, но в моей проверке сеанс больше не содержит правильное значение.Любая помощь очень ценится!

1 Ответ

0 голосов
/ 26 мая 2018

PHP и JS не совместимы;Вы не можете просто включить функцию PHP в JS.PHP оценивается на стороне сервера, а javascript - на стороне клиента.

Возможно, вы захотите заменить элементы навигации ссылками для перенаправления пользователя на нужную страницу.

Для пониманиякак работает PHP и результат, генерируемый сервером, щелкните правой кнопкой мыши на своей странице и выберите «Просмотреть исходный код страницы».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...