2017-08-31 50 views
1

因此,在我开始之前,我已经确保使用session_start(); - 这似乎是解决这个问题的95%的人的解决方案。

我创建了一个配方网站,当用户点击一个li元素时,javascript代码将该配料的id和名称发送到一个php文件,该文件应该将该值存储在$ _SESSION变量。

所有代码片段都被高度概括!

HTML:

<div id="ingredientContainer"> 
    <ul> 
     <li id="ingredient-43" class="ingredient">Avocado</li> 
     <li id="ingredient-90" class="ingredient">Bacon</li> 
    </ul 
</div> 

的JavaScript(第一次尝试)

$('#ingredientContainer .ingredient').click(function(){ 

    var ingredientName = $(this).html(); 
    var ingredientID = $(this).attr('id').split('-') 


    $.ajax({ 
     url: "js/routes/session.php", 
     cache: false, 
     type: "POST", 
     dataType:'json', 
     data:{ 
      ingredientName: $(this).html(), 
      ingredientID: ingredientID[1] 
     } 
    }) 

}) 

的JavaScript(第二次尝试)

$('#ingredientContainer .ingredient').click(function(){ 

    var ingredientName = $(this).html(); 
    var ingredientID = $(this).attr('id').split('-') 


    $.post("js/routes/session.php", { "ingredientName": ingredientName, "ingredientID": ingredientID[1] }); 

}) 

PHP(session.php文件):

<?php 

    session_start(); 

    if($_POST['ingredientName'] && $_POST['ingredientID']) { 
     $_SESSION['finalized'][$_POST['ingredientID'])] = array(
     'ingredientID' => $_POST['ingredientID']), 
     'ingredientName' => $_POST['ingredientName'] 
     ); 
    } 
?> 

当我点击几个成分后,我检查了$ _SESSION变量,但没有存储值。

任何想法?

回答

0

这可能只是你是如何简写你的代码,但它看起来像有一个在你的PHP代码中的额外收paranthesis:

$_SESSION['finalized'][$_POST['ingredientID'])] = array(

应该

$_SESSION['finalized'][$_POST['ingredientID']] = array(
+1

哈哈,看到了作为我正在审查提交的问题。好点子! – gavmcgz

+1

完成了。 :-)总是小事情......只需等待7分钟就可以接受你的答案。再次感谢。 – gavmcgz