无法在会话数组中存储ajax变量

时间:2017-10-19 12:49:46

标签: javascript php jquery ajax

我正在制作一个包含jqueryajaxphp的购物车机制。问题是html元素中的文本没有附加到会话数组。这是我的ajax代码:

$(document).ready(function(){
        $("#cart").on("click", function(){
            var name = $("#name").text();
            var cost = $("#cost").text();
            $.ajax({
                type:"post",
                data:"name="+name+"&cost="+cost,
                url:"senddata.php",
                success:function(data){
                    $("#info").html(data);
                }
            }); 
        }); 
    });

这是我用php显示的html:

function getData()
{
require_once('../config.php');

$query = mysqli_query($conn, "SELECT p_name, p_cost, p_pic, p_desc FROM products");

while($row = mysqli_fetch_assoc($query))
{
    echo "<form><tr>";
    echo "<td id='name' name='name'>" . $row['p_name'] . "</td>";
    echo "<td id='cost' cost='cost'>" . $row['p_cost'] . "</td>";
    echo "<td>" . $row['p_pic'] . "</td>";
    echo "<td>" . $row['p_desc'] . "</td>";
    echo "<td id='cart'><input type='button' id='submit' value='Add To Cart'></td><tr></form>";
}

mysqli_close($conn);

}

最后,这是我在会话数组中存储ajax变量的地方:

session_start();

$_SESSION['cart_name'] = array();
array_push($_SESSION['cart_name'], $_POST['name']);
var_dump($_SESSION['cart_name']);

$_SESSION['cart_cost'] = array();
array_push($_SESSION['cart_cost'], $_POST['cost']);
var_dump($_SESSION['cart_cost']);

我没有得到任何错误,但第一次将项目附加到数组中,但之后,变量根本没有附加。

1 个答案:

答案 0 :(得分:3)

Variables未附加,因为您每次

时都会初始化
$_SESSION['cart_name'] = array();

$_SESSION['cart_cost'] = array();

这意味着每次推送新数据之前都会清空SESSION var。