我是使用会话变量的新手,尽管我在网上搜索了解会话变量,但我一直在苦苦挣扎。
所以基本上我有一个页面(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帖子没有起作用。但是,总是会触发带有成功的警报。
有什么想法吗???
要向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!");
}
});