如何使用 php 访问 javascript 变量并将其存储到数据库中
How to access a javascript variable with php and store it to the database
我目前正在寻找一种方法来访问javascript变量并使用php代码将其存储在数据库中而不使用Ajax。下面的代码是我目前正在处理的内容的精简版本:
<script>
function secondPassed() {
document.getElementById('time').value = parseInt(document.getElementById('time').value) + 1;
int val = 0;
num = "<?php $insert = mysql_query('INSERT INTO tbl_timer VALUES('''', '"."$val".'" )',$connection); ?>";}
</script>
我正在尝试获取 val 的值并将其存储在数据库中,但它不会入。请告诉我这段代码哪里出错了。
请告诉我这段代码哪里出错了。
好吧,.php脚本由服务器执行,然后再将结果发送给用户。用<script>
</script>
包裹它无济于事。因此,您的代码流如下所示:
→ 服务器端,php:
<?php
...
?>
<script>
function secondPassed() {
document.getElementById('time').value = parseInt(document.getElementById('time').value) + 1;
int val = 0;
num = "<?php
$insert = mysql_query('INSERT INTO tbl_timer VALUES('''', '"."$val".'" )',$connection);
// error notice (probably suppresed), there is no $val variable defined...
// If somethig _will_ be inserted, it will contain just (0) or ("")
?>";}
</script>
→ 客户端,html:
...
<script>
function secondPassed() {
document.getElementById('time').value = parseInt(document.getElementById('time').value) + 1;
int val = 0;
num = "0";}
</script>
当浏览器执行该<script>
时,它只会在#time
中存储递增的值,而没有其他内容。
如果你想把一些东西从javascript传递到服务器,你必须总是向服务器发出请求。这是合乎逻辑的。
因此,正如@adeneo建议的那样,您必须使用:
-
ajax
请求(同步/同步(。
Cookie - (同步,页面重新加载需要将Cookie传递到服务器( 套接字
- (异步/同步,并且有很多与套接字相关的解决方案(
-
iframe
s(异步,可能会导致不必要的副作用(。 - 根本不要使用服务器端数据库(如果适用(。只需使用浏览器的
localStorage
或类似功能即可。
实际上,我不得不多次这样做。将变量从javascript传递给php并不是什么大事。但是,如果没有您要执行的操作的详细信息,则很难回答您。这里的问题是,您是否试图实时传递经过的秒数?您是尝试输入浏览器已经获取的数据(通过windows.onload(还是通过用户交互?与服务器的交互处于活动状态时秒数是否过去了?如果是这样,则需要先通过 json 缓存数据。否则,php 只会以不同的时间渲染。你可以用XML来做到这一点,但如果这是关键任务,速度会有所不同,并且由于php与服务器的通信方式,你会得到非常不同的数据。JSON 将是更好的选择。你可以使用Angularjs(不是我个人的建议(,或者如果它是你网站上的一个小应用程序,ReactJS非常方便,但你需要阅读它。这里没有足够的空间来解释。否则,首先使用 .data(( 缓存数据,这是 jquery 和技术上的 AJAX。坦率地说,idk为什么你不想使用AJAX,它是这个问题的完美工具。.data(( 是我经常用于此类问题的原型设计和生产的方法。它就像一个魅力。
底线:如果不先将数据缓存到 json 或 xml,以便 php 以后可以检索它,就无法做到这一点。PHP 不会实时执行此操作。它只是不是为它而生的。您将需要一个类来检索数据,无论是通过 POST 方法还是一个类从 json 转换为 php 对象,然后您可以使用任何方法传递给 MYSQL。
- 如何在本地存储(或其他数据库)上安全地保存敏感访问代码
- Codeigniter:通过Ajax上传图像并存储在数据库中
- 使用node-js上传文件,并将表单信息存储在数据库(mysql)中
- 如何离线存储数据库,在线时共享到服务器
- 我的地图数据's不会使用php存储在mysql数据库中
- 将动态feild数据存储到jquery-mobile和php-mysql中的数据库中
- 将Javascript对象存储在Wordpress用户数据库中
- 为数据库存储设置角度日期格式
- 如何获取所有旅行模式的距离和持续时间,例如驾驶,公交,骑自行车,在我的页面中步行以及将其存储在数据库中
- 我想从网站收集数据并使用PHP将它们存储在数据库中
- PHP 函数将随机值存储到数据库中
- 当我按下getroute按钮时,我希望我的javascript变量存储在数据库中
- 如何获取数据库值并存储在javascript变量中
- 将数据库查询存储在nodejs中(使用socket.io)
- 输入法所见即所得编辑器不在mysql数据库中存储值
- 如何在JavaScript中存储和检索MySQL数据库中的JSON数据
- 如何使用javascript将数据存储到mysql数据库中
- Html5存储本地存储数据库文件
- 在不设置服务的情况下安全地存储数据库密码
- 使用XHR将图像发送到在线存储/数据库