2014-02-06 25 views
0

我在這裏發生了真正的戰鬥,並且真的希望有人能夠提供幫助。昨晚我嘗試了谷歌提供的所有解決方案,但仍未取得成功。

我的網站有一個成分列表,我想添加到配方中。

爲這個進程是:

  1. 點擊 「添加到配方」。其中打開包含jquery UI選項卡式內容的fancybox iframe,允許用戶輸入以克爲單位的度量值。

  2. 從這裏用戶點擊「添加」和的fancybox含量使得AJAX調用(具有內置其中創建精細的數據串)..

  3. 通過AJAX調用的PHP文件只投中傳遞的值爲int(食品標識和重量),並將其存儲在:

    $_SESSION['recipe'][] = array('id' => $id , 'weight' => $weight);

  4. 一旦完成的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調用可能會產生一個新的會話,我實際上需要使用已經打開的會話。如果是這種情況,我該怎麼做?

任何建議將是輝煌的!

+0

你在哪裏訪問$ _SESSION [ '配方']? – user1844933

回答

0

如果你檢查你的ajax調用,那麼你會發現你在查詢字符串中傳遞「g」&「id」變量。但在PHP文件中,您正在檢查「重量」& &「ID」。所以這個條件不會成立,會話也不會設置。所以你會得到空白的會話值。

更新Ajax調用

$.ajax({ 
     type: "POST", 
     url: "../ajax/add-ingredient-to-recipe.php?"+dataString, 
     dataType: "html",   
     success: function (msg) { 


      frames.top.$.fancybox.close(true); 
      frames.top.$('#calorie-table').load('./views/recipe-calorie-chart.tmp.php'); 

     } 

    }); 

更新PHP代碼

session_start(); 

include('../includes/config.inc.php'); 

if (isset($_GET['g']) && $_GET['id']) 
{ 
    $weight = (int) $_GET['g']; 
    $id = (int) $_GET['id']; 
    $_SESSION['recipe'][] = array('id' => $id,'weight' => $weight); 



}