当前位置: 首页 > 知识库问答 >
问题:

PHP AJAX会话变量不工作

锺离飞飙
2023-03-14

我是使用会话变量的新手,尽管我在网上搜索了解会话变量,但我一直在苦苦挣扎。

所以基本上我有一个页面(search.php)。我加载一个基于搜索表单的动态数据表。加载表后,我通过AJAX执行以下操作:

$.ajax({
    type:'POST',
    url:'/ITSMIS/data/asset/search.php',
    data:HardwareAsset,
    dataType: 'html',
    // When PHP / SQL Query Has Been Executed If Data Is Returned
    success:function(data){
        // Load The Data Table Results
        LoadDataTable(data);
        // Generate Hyperlinks For The Table Rows

        $('#data-table tr').click(function(){       
            var HyperlinkHardwareAssetID = $(this).data('id');
            $.ajax({
                type:'POST',
                url:'/ITSMIS/session.php',
                data: HyperlinkHardwareAssetID,
                success: function(data){
                    alert("great!");
                }
            });
            window.location = $(this).data('href');
        }); 

    }
})

正如您在Success和单击table row记录时所看到的,我的想法是通过AJAX发布一个变量以供以后使用。并将用户重定向到update.php页面。

然后,我希望使用发布的AJAX变量在session.php页面中创建一个会话变量。

session_start();
$_SESSION["HardwareAssetID"] = $_POST["HyperlinkHardwareAssetID"];

然后,当update.php页面加载时,需要我在页面上显示会话变量结果。

        $session = $_SERVER['DOCUMENT_ROOT'];
        $session .= "/ITSMIS/session.php";
        include_once($session);

        echo $_SESSION["HardwareAssetID"];

但我只得到以下错误:

注意:第3行C:\xampp\htdocs\itsmis\session.php中未定义索引:HyperlinkHardwareAssetID

这意味着由于某种原因,点击表行时的AJAX帖子没有起作用。但是,总是会触发带有成功的警报。

有什么想法吗???

共有2个答案

云长恨
2023-03-14

您需要将ajax数据参数作为对象{key:value}传递

   $.ajax({
            type:'POST',
            url:'/ITSMIS/session.php',
            data: {HyperlinkHardwareAssetID : HyperlinkHardwareAssetID  },
            success: function(data){
                alert("great!");
            }
    });
钦枫
2023-03-14

要向php发送变量,必须在$.ajax函数的data属性中发送一个对象,如下所示:

$.ajax({
    data: {
        'var_name': 'value'
    }
});

并且,在PHP文件中:

$item = $_POST['var_name'];

因此,在代码中,应该这样使用$.ajax函数:

$.ajax({
   type:'POST',
   url:'/ITSMIS/session.php',
   data: {
       'HyperlinkHardwareAssetID': HyperlinkHardwareAssetID
   },
   success: function(data){
       alert("great!");
   }
});

有关更多信息,请参阅jQuery.ajax()文档

 类似资料:
  • 问题内容: 我不确定这是否可能。 我的“活动”网站正在处理注册并将其保存到我们的数据库中,但是我们的主站点负责处理信用卡处理。通过在主网站上处理当前的购买,会话可用于将数据传递到付款/抄送屏幕。 不必更改我的付款代码(例如接受$ _GET参数),我的变量是否应该传递过来? 例: 我的页面在上面查找地址会话变量。 问题答案: 跨域会话ID 默认情况下,使用cookie传递会话ID。由于您的网站位于不

  • 问题内容: 是否可以在PHP中使数组成为会话变量? 情况是,我有一个表(第1页),其中有些单元格具有指向特定页面的链接。下一页将列出名称(第2页,我想保留在会话数组中)及其相应的复选框。提交此表单后,它将进入一个交易页面(第3页,其中已发布复选框的值保存在数据库中以用于对应名称)。现在,如果我返回首页并单击另一个单元格,则会话数组将包含新名称列表还是旧名称列表? 问题答案: 是的,PHP支持将数组

  • 问题内容: 我需要通过过滤器访问会话变量。我什至不知道是否可能。实际上,问题在于实现的方法类型是,而HttpServlet继承了类,而doPost方法的参数是HttpServletRequest。 我可以在ServletRequest的过滤器中访问会话吗? 我应该那样做吗? 你能推荐我什么? 谢谢! 问题答案: 只需将获得的内容转换为即可。

  • 我知道这是一个常见的问题,因为我在决定发帖之前一直在寻找答案,但我似乎无法找到一个解决方案。 问题:我有一个分页脚本(PHP)用于我的搜索结果。显然常见的是,第一页的结果显示良好,然后在移动到第2、3页等时失败。 当点击页面2、3等时,我在搜索中使用的每个变量都有一个“未知索引”错误。 因此,I$_从表单中获得以下变量: 谢谢

  • 我有多个Gatling模拟,我正试图以一种重用低级调用(即HTTP调用)的方式构建它们,同时构建不同的场景。因此,我有以下结构(为了解释当前状态,使用了echo函数): 在上面提供的测试模拟中,我们从文件中提供数据并选择我们作为Map存储到会话中的属性子集。如果在文件中找到此类属性,我们会在提交回显请求时将它们添加为表单参数。否则我们不会。在这两种情况下,我们都存储了响应正文并将其打印出来。这很好

  • 将感谢任何关于我们应该如何处理这一点的提示!