我是使用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无效。但是,始终会触发成功警报。
任何想法???
答案 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