AJAX / LocalStorage:是否可以将JS变量传递给PHP?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了AJAX / LocalStorage:是否可以将JS变量传递给PHP?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3512字,纯文字阅读大概需要6分钟。
内容图文
![AJAX / LocalStorage:是否可以将JS变量传递给PHP?](/upload/InfoBanner/zyjiaocheng/792/1eca5e51b54d41e298ef8c0d7d8ecbe9.jpg)
我想知道,什么是存放购物车的最佳方式?
我考虑过将产品ID存储在localstorage / sessionstorage中,然后使用AJAX从服务器中检索产品.
唯一的问题是我不知道如何将项目从localstorage传递给PHP …
我猜它可能不是直接的,我想到了一个表格虽然我不知道如何实现它…
这个想法是,当用户点击“添加到购物车”时,项目ID和数量被添加到localstorage,当用户查看他的购物车时,项目详细信息(图像,名称,价格……)正在从数据库.
我可能会使用本教程
http://verido.dk/index.php/ressourcer/artikler/loading-and-saving-data-dynamically-using-php-jquery-and-mysql/
我还可以放弃本地存储并使用会话和数据库,但我真的很想给用户提供动态的网络体验.
我想出的另一种可能的方法是使用像file.php?prodid = ……这样的URL,尽管这样的URL可能会太长.
提前致谢!
解决方法:
‘你必须记住,在将代码转换为浏览器端代码之前,会读取服务器端(PHP)代码. JavaScript被操纵浏览器端…
所以一维地说,你不能将JavaScript传递给PHP.
然而…
使用Ajax,在我的情况下,我建议您使用JSON将JavaScript数据发送到PHP页面并将响应带回JavaScript方法.我认为这符合您的需求.如果你愿意,我可以提供一个简单的例子.
// – 以下示例:
JavaScript的:
//Ajax Method
function processAjax(queryString, processDiv, responseDiv) {
responseDiv.innerHTML = '';
var myAjax;
try {
// Modern Browsers-->
myAjax =new XMLHttpRequest();
} catch (e) {
// antique ie browsers-->
try {
myAjax =new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
myAjax =new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
// Something went wrong
document.getElementById('processDiv').innerHTML="";
alert("Your browser malfunctioned! Please try again. Consider installing a modern browser if the problem persists.");
return false;
}
}
}
myAjax.onreadystatechange = function() {
if (myAjax.readyState == 4) {
var ajaxResponse = myAjax.responseText;
responseDiv.innerHTML = ajaxResponse;
processDiv.innerHTML = "";
//NOTE: HERE IS WHERE AJAX IS FINISHED, SO IF YOU WANT TO DO SOMETHING ELSE HERE YOU CAN!
//POST PROCESSING----->
// IE: alert('I am finished processing now!');
// or call another function:
// anotherFunction();
} else {
processDiv.innerHTML = '<img src="http://www.mysite.com/images/loadingicon.gif" alt="processing....." />';
}
}
myAjax.open("GET", queryString, true);
myAjax.send(null);
}
function sendStorage() {
var helloVar = 'Hello, I am passed to PHP #1';
var worldVar = 'I am the second value passed to PHP!';
var processId = 'process_div';
var resultId = 'result_div';
var queryString = 'http://www.mysite.com/process.php?hello=' + helloVar + '&world=' + worldVar;
processAjax(queryString, processId, resultId);
}
现在对于一些HTML:
<div id="content">
<div id="process_div"> This is where processing will occur </div>
<div id="result_div"> This is where my response will display </div>
</div>
现在为process.php(注意:为安全起见,我强烈建议您不要在您的JAVASCRIPT中显示服务器端处理页面)
<?php
//init
$hello = '';
$world = '';
$errors = 0;
//set
//Security note: never trust a URL request.. you should clean all $_GET, $_REQUEST, AND $_POST with the PHP htmlspecialchars() method (take a look at php.net for that)
(isset($_GET['hello'])) ? $hello = $_GET['hello'] : $errors++;
(isset($_GET['world'])) ? $world = $_GET['world'] : $errors++;
//process
if($errors > 0) {
echo 'Errors Detected! Missing querystring get data!';
} else {
echo '<p>Hello received: ' . $hello . '</p>';
echo '<p>World received: ' . $world . '</p>';
//now we can process $hello and $world server side!
}
?>
重要提示:您应该学习一些JSON和$_POST请求,因为它们更安全,更快,您可以轻松地操作返回的数据.我建议查看像jquery这样的库来简化示例.
我没有测试过这段代码,但它应该可以工作..如果您有疑问或者这不能回答您的问题,请告诉我.
乐意效劳!
内容总结
以上是互联网集市为您收集整理的AJAX / LocalStorage:是否可以将JS变量传递给PHP?全部内容,希望文章能够帮你解决AJAX / LocalStorage:是否可以将JS变量传递给PHP?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。