我刚开始使用 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');
});
}
})
正如您在 Success 和单击表行记录上看到的那样,我的想法是我通过 AJAX 发布一个变量以供稍后使用。并将用户重定向到 update.php 页面。
我希望使用 POSTED AJAX 变量在 session.php 页面中创建一个 session 变量。
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 不起作用。但是,成功的警报始终会被触发。
有什么想法吗???
最佳答案
要将变量发送到您的 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() Documentation
关于javascript - PHP AJAX session 变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43576151/