所以在我开始之前,我确保使用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 :(得分:0)
可能就是你缩减代码的方式,但看起来你的PHP代码还有一个额外的关闭问题:
$_SESSION['finalized'][$_POST['ingredientID'])] = array(
应该是
$_SESSION['finalized'][$_POST['ingredientID']] = array(