好的,我正在努力理解如何将某些内容添加到购物车中,并在不重新加载页面的情况下显示在页面上。
因此,我尝试编写一些非常简单的内容,以便我可以理解逻辑如何工作并正确编写。在我的示例中,页面中有一个用于session['cart']
的div
和一个下拉菜单。
其中一个选项的值为'red',另一个选项的值为'blue'。当我选择值为'red'的选项时,我希望'red'显示在位于body标记右侧的
中的
session['cart']
。当我选择值为'blue'的选项时,我希望'blue'显示在session['cart']
中。
我正试图通过对名为'cart_update.php'
的页面进行ajax
post来实现这一点。我已经为更高级别的模型苦苦挣扎了一个星期,我认为编写一些简单的东西让我真正理解和学习发生了什么是一个好主意。任何帮助都非常感谢!
以下是我的代码,我知道它太离谱了。我只是想学习。
index.php
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style type="text/css">
body {
margin-top: 200px;
}
</style>
</head>
<body>
<div align="left" style="display:block;width:200px;height:200px;background:#ccc;border:solid 1px #009966;">Color Chosen<br /><?php echo $_SESSION['cart']; ?></div>
<div align="center"><form method="post" action="">
<select id="color-selection">
<option value="red">Red</option>
<option value="blue">Blue</option>
</select>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#color-selection").on("change", function(event){
var color = $("#color-selection").val();
var add = "add";
var dataString = {color: color, type: add}; //JSON-formatted string
$.ajax({
type: "POST",
url: "cart_update.php",
data: dataString
});
});
});
</script>
</body>
</html>
这是我的cart_update.php文件:
<?php
session_start();
$type = json_decode($_POST['type']);
if(isset($_POST["type"]) && $_POST["type"]== $type)
{
$color = json_decode($_POST['color']);
$_SESSION['cart'] = $color;
}
?>
$_SESSION['cart']
中显示“红色”或“蓝色”。就我所知,“红色”或“蓝色”应该会出现在$_SESSION['cart']
中,只是你没有看到。你期望在哪里“看到”它呢? - putvandediv
,以便在那里放置您的颜色。 - putvande