我在这里发生了真正的战斗,并且真的希望有人能够提供帮助。昨晚我尝试了谷歌提供的所有解决方案,但仍未取得成功。
我的网站有一个成分列表,我想添加到配方中。
为这个进程是:
点击 “添加到配方”。其中打开包含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