PHP AJAX会话变量不起作用

时间:2017-04-23 20:29:07

标签: javascript php jquery ajax session

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

所以基本上我有一个页面(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');
        }); 

    }
})

正如您在成功和单击表行记录中看到的那样,我的想法是通过AJAX发布变量以便稍后使用。并将用户重定向到update.php页面。

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

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

当加载update.php页面以在页面上显示Session变量结果时,我会被期待。

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

        echo $_SESSION["HardwareAssetID"];

但我只收到以下错误:

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

由于某种原因暗示单击表行的AJAX POST无效。但是,始终会触发成功警报。

任何想法???

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

要将变量发送到php,您必须在data函数的$.ajax属性中发送一个对象,如:

$.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() Documentation