【发布时间】:2015-12-01 04:19:36
【问题描述】:
我编写了一个 JavaScript 代码,我正在构建一个购物车,但即使我不点击它,这段代码也会运行:
function addProduct(prodId) {
var sessionDivId = document.getElementById(prodId);
if (prodId) {
sessionDivId.innerHTML = '<?= $_SESSION['product_id_1']+=1 ?>';
}
}
<div onclick="addProduct('testSession1');">ADD</div>
<div id="testSession1"></div>
每次我刷新网站时,它都会将1 添加到会话testSession1,即使我没有点击“添加”按钮。
【问题讨论】:
-
不要忘记php在javascript之前执行,所以即使javascript没有在浏览器中执行,服务器已经处理了php。在这种情况下,服务器看到将会话变量加 1 的调用,因此将添加它。如果您需要实现这一点,最好的方法是使用 ajax 调用添加到会话变量的 php 脚本。
-
我从来没有使用过 ajax,我搜索了一下,但是当我只想开始一些东西时,人们给出的东西太宽泛了,所以我可以自己构建它:) 如果你能提供一些东西,我将不胜感激跨度>
-
如果您要忽略 ajax,您可能会让 javascript 将表单提交到同一页面,然后测试 POST - 一旦您有 POST 请求,您就可以增加会话变量。即:
if( $_SERVER['REQUEST_METHOD']=='POST' ) { /* increment session var */ } -
@J.Doe 我认为通过this tutorial 将是一个好的开始。有一段时间我对 AJAX 也一无所知。然后,在一个睡不着觉的晚上,我问自己“AJAX 是如何工作的?”,拿起我的手机,一夜之间很快就学会了,可以这么说。所以,真的没那么难。
-
谢谢大家,我不知道我现在是否有心情阅读它,我想我会用铁杆 php 表单和发布请求来完成
标签: javascript php html session session-cookies