javascript - PHP根据(按钮/链接)点击设置$_SESSION变量值

标签 javascript php session

我有以下代码:

<ul>
 <li>
  <a href="index.php?page=quiz" class="cat" >
    <h3>Category 1</h3>
    <p>(explain here)</p>
  </a>
 </li>
 <li>
  <a href="index.php?page=quiz" class="cat" >
    <h3>Category 2</h3>
    <p>(explain here)</p>
  </a>
 </li>
</ul>

我需要的是把分类号发到页面index.php?page=quiz 通过$_POST或其他任何东西 无需通过 $_REQUEST 发送像这样index.php?page=quiz&cat=1
OR 将类别编号值分配给 $_SESSION根据当前点击的链接变化 获取目标页面的值 index.php?page=quiz .


我已经尝试过这个解决方案:

  • 通过 javascript通过将变量值发送到页面

    var num=1; /*or put the current clicked category number */
    $.ajax({
            url: 'index.php?page=quiz',
            type: 'post',
            dataType: 'json',
            data: {
                category_no: num,
            }
        })
    

    发送过程和page=quiz的值好像有问题 没有发送到目的地,我们仍在当前页面上 page=home .

    您有什么有用的想法吗?

    注意:我的问题不是将类别 ID 从当前点击的(按钮/链接)获取到 javascript , 但使用上述任何一种方式将其发送到目标页面。

  • 最佳答案

    解释解决方案:
    问题是没有 exit()json_encode() 作为我的函数的结果,它不能在页面 index.php 代码中应用意思是
    整个函数必须移动到另一个文件

    问题解决如下:

    我的页面:

    <ul>
     <li>
      <a  href="" data-no="1" class="cat" >
        <h3>Category 1</h3>
        <p>(explain here)</p>
      </a>
     </li>
     <li>
      <a  href="" data-no="2" class="cat" >
        <h3>Category 2</h3>
        <p>(explain here)</p>
      </a>
     </li>
    </ul>
    

    JavaScript:

    $('.cat').on('click', function (e) {
        // Prevent default action of link click
        e.preventDefault();
        var cat = $(this).data('no');
        var curr='set_var.php';
        $.ajax({
            url: curr,
            type: 'POST',
            dataType: 'json',
            data: {
                category: cat
    
            }
        }).done(function(res) {
                if (res.valid) {
                document.location.href = 'index.php?page=quiz';
            }
            });
    });
    

    set_var.php :

    <?php 
    session_start();
        if(isset($_POST['category'])){  
            $_SESSION['cat']=$_POST['category'];
            $result['valid'] = TRUE;
        }
        echo json_encode($result);
        exit();
     ?>
    

    感谢您的所有回答

    关于javascript - PHP根据(按钮/链接)点击设置$_SESSION变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47095986/

    相关文章:

    javascript - 为什么数据没有显示在react-bootstrap-table中?

    javascript - jQuery .length 未将正确的类应用于 ACF Repeater 字段

    javascript - 使用 jQuery 获取 div 的背景图像。是否有一种内置方法可以去除 url() 部分?

    session - 如何在 JSF 中使用 cookie

    php - 我如何从文件中反序列化 Symfony session ?

    javascript - 想在某个单词后拆分字符串?

    php - 使用 PHP 和 C/C++ 进行 eclipse

    php - 如何使用 PHP Mysql 创建服务器机架表

    php - 提交表单后显示模式对话框

    php,如何检测 session ID是死的还是活的?