我在這裏發生了真正的戰鬥,並且真的希望有人能夠提供幫助。昨晚我嘗試了谷歌提供的所有解決方案,但仍未取得成功。
我的網站有一個成分列表,我想添加到配方中。
爲這個進程是:
點擊 「添加到配方」。其中打開包含jquery UI選項卡式內容的fancybox iframe,允許用戶輸入以克爲單位的度量值。
從這裏用戶點擊「添加」和的fancybox含量使得AJAX調用(具有內置其中創建精細的數據串)..
通過AJAX調用的PHP文件只投中傳遞的值爲int(食品標識和重量),並將其存儲在:
$_SESSION['recipe'][] = array('id' => $id , 'weight' => $weight);
一旦完成的fancybox關閉和啓動頁面上的DIV(第一步),其中包含了食譜的熱量信息應重新加載和更新。
所有步驟似乎除了3
工作每當我試着vardump
它是空會話。
我已經開始在每個頁面上進行會話,即步驟1,fancybox頁面,然後是ajax調用頁面。
我完全失敗。
在第3步我的AJAX調用是:
$(document).on('click', '.add-food-button', function() {
var weight = $("input#grams").val();
var id = $("input#ingredientid").val();
//var sez = $("input#sez").val();
var dataString = 'g='+ weight +'&id=' + id ; //+ "&sid=" + sez;
if (weight > 0)
{
$.ajax({
type: "POST",
url: "../ajax/add-ingredient-to-recipe.php?"+dataString,
dataType: "html",
data: dataString,
success: function (msg) {
frames.top.$.fancybox.close(true);
frames.top.$('#calorie-table').load('./views/recipe-calorie-chart.tmp.php');
}
});
}else{
$('#grams').addClass('errorInput');
$('#weight-label').addClass('errorLabel');
}
});
,並呼籲(第四步),PHP文件是:
<?php
session_start();
include('../includes/config.inc.php');
if (isset($_GET['weight']) && $_GET['id'])
{
$weight = (int) $_GET['weight'];
$id = (int) $_GET['id'];
$_SESSION['recipe'][] = array('id' => $id,'weight' => $weight);
}
?>
我讀過有關傳遞會話ID通過AJAX作爲AJAX調用可能會產生一個新的會話,我實際上需要使用已經打開的會話。如果是這種情況,我該怎麼做?
任何建議將是輝煌的!
你在哪裏訪問$ _SESSION [ '配方']? – user1844933