Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php访问javascript变量并将其存储到数据库_Javascript_Php_Jquery_Mysql - Fatal编程技术网

如何使用php访问javascript变量并将其存储到数据库

如何使用php访问javascript变量并将其存储到数据库,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我目前正在寻找一种方法,如何访问javascript变量并使用php代码将其存储在数据库中,而无需使用Ajax。下面的代码是我当前工作的精简版本: <script> function secondPassed() { document.getElementById('time').value = parseInt(document.getElementById('time').value) + 1; int val = 0; num = "<?php $in

我目前正在寻找一种方法,如何访问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>

函数secondPassed(){
document.getElementById('time').value=parseInt(document.getElementById('time').value)+1;
int-val=0;
num=”“;}
我正在尝试获取val的值并将其存储在数据库中,但它不会被插入。请告诉我这个代码哪里出错了

请告诉我这个代码哪里出错了

在将结果发送给用户之前,.php脚本由服务器执行。用
包装它不会有帮助。因此,您的代码流如下所示:

→ 服务器端,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>

函数secondPassed(){
document.getElementById('time').value=parseInt(document.getElementById('time').value)+1;
int-val=0;

num="事实上,我已经多次这样做了。将变量从javascript传递到php没有什么大不了的。但是,如果不详细说明您正在尝试做什么,就很难回答您的问题。这里的问题是,您是否试图实时传递秒数?您是否试图输入您已经获取的数据浏览器(通过windows.onload)或者通过用户交互?当与服务器的交互处于活动状态时,秒数是否在流逝?如果是这样,您需要首先通过json缓存数据。否则,php只会以不同的时间进行渲染。您可以使用XML进行渲染,但如果这是关键任务,则速度会有所不同,并且您将再次获得非常不同的数据,因为ay php与服务器通信。json将是一个更好的选择。您可以使用Angularjs(不是我个人的推荐),或者如果它是您网站上的一个小应用程序,ReactJS非常方便,但您需要仔细阅读。这里没有足够的空间来解释。否则,请先使用.data()缓存数据,这是jquery,从技术上讲是AJAX。坦率地说,idk为什么你不想使用AJAX,它是解决这一问题的完美工具。data()是我经常用于原型设计和制作这类问题的工具。它非常有效


一句话:如果不先将数据缓存到json或xml中,以便php以后可以检索数据,那么就没有办法做到这一点。php不会实时执行此操作。它不是为它构建的。您需要一个类来检索数据,无论是通过POST方法还是一个类来将json转换为php对象,然后您可以使用任何方法来传递到MYSQL。

你可以使用ajax,重新加载页面,或者使用套接字,或者其他任何可以将数据发送到服务器的东西。但是我只需要使用javasrcipt。你不能,PHP在服务器上运行,它完成了它的工作,它会将HTML发送到用户浏览器,而javascript就是在那里运行的。不用说,当页面到达时对于用户浏览器来说,现在用PHP做任何事情都为时已晚,现在你必须发出请求并将内容发送回服务器以再次使用PHP。我可能会按照你的建议使用ajax,但它仍然不起作用。这是我的代码。int val=0;$val=$(This.val();$.ajax({url:“time.PHP”,键入:“GET”,data:{val:val},success:function(data){console.log(data);}})在javascript的变量名中不需要使用“$”(
val
val
是不同的变量),也不需要使用
int
类型说明符。使用类似这样的方法:
var val=$('#time').val(parseInt($('#time').val())+1)$.ajax({url:“time.php”,type:“GET”,data:{val:val},success:function(data){console.log(data);}});
。记住,html中需要包含jQuery才能工作。此外,在几乎所有现代webbrowser中都有调试控制台,您可以在其中查找代码中的错误(语法、执行)(如Chrome中的开发工具)。
...
<script>
 function secondPassed() {
   document.getElementById('time').value = parseInt(document.getElementById('time').value) + 1;
   int val = 0;
   num = "0";}
</script>