提问者:小点点

PHP AJAX会话变量不工作


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

所以基本上我有一个页面(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个答案

匿名用户

要向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()文档

匿名用户

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

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

相关问题