Javascript 使用ajax将变量从会话添加到另一个会话
我是JavaScript新手,尝试从“Name”传递一个会话变量,该变量已经使用PHP分配了一个变量,并在单击按钮时将其传递到“cartItem”中 据我所知,当前代码将'Name'的值存储到var item中,然后向服务器请求HTML,以返回并使用存储在var item中的值更新会话变量'cartItem' 按钮和脚本:Javascript 使用ajax将变量从会话添加到另一个会话,javascript,ajax,session,cart,session-storage,Javascript,Ajax,Session,Cart,Session Storage,我是JavaScript新手,尝试从“Name”传递一个会话变量,该变量已经使用PHP分配了一个变量,并在单击按钮时将其传递到“cartItem”中 据我所知,当前代码将'Name'的值存储到var item中,然后向服务器请求HTML,以返回并使用存储在var item中的值更新会话变量'cartItem' 按钮和脚本: <button id='addToCart' onclick='addToCart'>Add to cart</button>
<button id='addToCart' onclick='addToCart'>Add to cart</button>
<script>
function addToCart(){
var item = sessionStorage.getItem('Name');
item = new XMLHttpRequest();
item.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200){
sessionStorage.setItem('cartItem', item);
}
}
}
</script>
添加到购物车
函数addToCart(){
var item=sessionStorage.getItem('Name');
item=新的XMLHttpRequest();
item.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
sessionStorage.setItem('cartItem',item);
}
}
}
然后,cartItem使用跨所有页面调用的函数显示在我的导航栏中
<span class='item-info'>
<span>" . $_SESSION['cartItem'] . "</span>
</span>
“$\u会话['cartItem']
但它并没有表现出来。任何建议都会收到。如果我理解正确,您正在使用sessionStorage对象在Javascript/HTML文档上存储PHP会话变量值,对吗?如果是这样的话,那么请理解,当您试图更改一个值时,您只是在客户端更改它,而服务器端(或PHP端)不受影响) 看起来您对XMLHttpRequest的想法是正确的,但是为了完成您需要做的事情,您需要制作一个PHP脚本,Javascript函数将向该脚本发送ajax。这里有一个小模型:
<?php
//NOTE: this does not do any input sanatation
//name of this script is changeVal.php
$keyAr = ["Name","Price","Value","Other"];
if (in_array($_POST['key'],$keyAr) {
$_SESSION[$_POST['key']] = $_POST['val'];
}
您已经创建了XMLHttpRequest对象,但尚未打开URL或发送请求
示例(未测试):
在此之后,对象“item”将包含响应主体和HTTP状态代码等信息
var name = sessionStorage.getItem('Name');
var item = new XMLHttpRequest();
item.open("GET", "http://www.example.com/endpoint/" + name);
item.send();