通过AJAX将值发送到PHP文件以存储在$ _SESSION变量中不起作用

时间:2017-08-31 04:04:37

标签: php jquery ajax session

所以在我开始之前,我确保使用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变量,但没有存储值。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

可能就是你缩减代码的方式,但看起来你的PHP代码还有一个额外的关闭问题:

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

应该是

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