Php 如何将javascript变量传递到数据库

Php 如何将javascript变量传递到数据库,php,javascript,mysql,ajax,Php,Javascript,Mysql,Ajax,我有一个javascript应用程序。我按照一些教程来做,但我真的没有javascript代码的经验。问题是我需要将变量结果从javascript传递到mysql数据库。我在这个网站上找到了一些答案,我试着做我发现的事情,但没有运气。我发现我需要ajax和php。我从不使用ajax,因此我不明白我做错了什么 也许如果我把代码放在这里,有人可以帮我解决问题 这是javascript代码: function ajaxFunction(){ var ajaxRequest; tr

我有一个javascript应用程序。我按照一些教程来做,但我真的没有javascript代码的经验。问题是我需要将变量结果从javascript传递到mysql数据库。我在这个网站上找到了一些答案,我试着做我发现的事情,但没有运气。我发现我需要ajax和php。我从不使用ajax,因此我不明白我做错了什么

也许如果我把代码放在这里,有人可以帮我解决问题

这是javascript代码:

function ajaxFunction(){ var ajaxRequest; try{ Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ Something went wrong alert("Your browser broke!"); return false; } } } ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ document.myForm.time.value = ajaxRequest.responseText; } } ds = new Date(); e_time = ds.getTime(); var res = new Object();//This are the results variables that i need to pass to my database res.bytes_transfered =; res.total_time_seconds = (e_time-s_time)/1000; res.generatied_in = ; res.ip = ""; --> var res1= 'res.bytes_transfered'; var res2= 'res.total_time_seconds'; var res3= 'res.generatied_in'; var res4= 'res.ip'; $.post('insert.php',{res.bytes_transfered:res1,res.total_time_seconds: res2, res.generatied_in: res3, res.ip:res4}); var queryString = "?res.bytes_transfered=" + res.bytes_transfered + "&res.total_time_seconds=" + res.total_time_seconds + "&res.generatied_in =" + res.generatied_in + "&res.ip =" + res.ip; ajaxRequest.open("POST", "insert.php" + queryString, true); ajaxRequest.send(null); new Ajax.Request('insert.php', { onSuccess : function(xmlHTTP) { eval(mlHTTP.responseText); } }); 函数ajaxFunction(){ var ajaxRequest; 试一试{ Opera 8.0+、Firefox、Safari ajaxRequest=新的XMLHttpRequest(); }捕获(e){ Internet Explorer浏览器 试一试{ ajaxRequest=newActiveXObject(“Msxml2.XMLHTTP”); }捕获(e){ 试一试{ ajaxRequest=新的ActiveXObject(“Microsoft.XMLHTTP”); }捕获(e){ 出了点问题 警告(“你的浏览器坏了!”); 返回false; } } } ajaxRequest.onreadystatechange=函数(){ if(ajaxRequest.readyState==4){ document.myForm.time.value=ajaxRequest.responseText; } } ds=新日期(); e_time=ds.getTime(); var res=new Object();//这是我需要传递到数据库的结果变量 res.bytes_transfered=; res.total_time_seconds=(e_time-s_time)/1000; res.generated_in=; res.ip=“”; --> var res1='res.bytes_transfered'; var res2='res.total_time_seconds'; var res3='res.generated_in'; var res4='res.ip'; $.post('insert.php',{res.bytes_transfered:res1,res.total_time_seconds:res2,res.generated_in:res3,res.ip:res4}); var queryString=“?res.bytes_transfered=“+res.bytes_transfered+”&res.total_time_seconds=“+res.total_time_seconds+”&res.generated_in=“+res.generated_in+”&res.ip=“+res.ip; open(“POST”、“insert.php”+queryString,true); ajaxRequest.send(空); 新的Ajax.Request('insert.php'{ onSuccess:函数(xmlHTTP){ eval(mlHTTP.responseText); } }); 这是insert.php:

$fecha= date("Y-m-d H:i:s"); $connnect= mysql_connect("localhost", "root", "xxxxxxxxx"); mysql_select_db("dbname"); $res1= mysql_real_escape_string($_POST['res1']); $res2= mysql_real_escape_string($_POST['res2']); $res3= mysql_real_escape_string($_POST['res3']); $res4= mysql_real_escape_string($_POST['res4']); $queryreg=mysql_query("INSERT INTO grafico(Cantidad, Tiempo, IP, Bajada, Subida, Fecha) VALUES ('$res1','$res2','$res3','$res4','0','$fecha') "); if (!$queryreg) { die('No se ha podido ingresar su registro.'); } else{ die("Usted se ha registrado exitosamente!"); } $fecha=日期(“Y-m-d H:i:s”); $connnect=mysql_connect(“localhost”、“root”、“xxxxxxxx”); mysql_select_db(“dbname”); $res1=mysql\u real\u escape\u字符串($\u POST['res1']); $res2=mysql\u real\u escape\u字符串($\u POST['res2']); $res3=mysql\u real\u escape\u字符串($\u POST['res3']); $res4=mysql\u real\u escape\u字符串($\u POST['res4']); $queryreg=mysql_查询(“插入grafico(Cantidad、Tiempo、IP、Bajada、Subida、Fecha)值(“$res1”、“$res2”、“$res3”、“$res4”、“0”、“$Fecha”); 如果(!$queryreg){ 死亡(‘没有死亡’); } 否则{ 死(“我们已经死了!”); }
我希望有人能帮助我。我不知道该怎么办!

看起来您的POST数据的键和值都是向后的。在传递给$的数据中。POST的键名必须放在第一位,值必须放在后面:。因此我认为应该是:

$.post('insert.php',{res1:res.bytes_transfered,res2:res.total_time_seconds,res3:res.generatied_in, res4: res.ip});

您需要做的是让JavaScript将变量传递给PHP,PHP将在MySQL语句中使用它(很可能是通过PHP中的PDO)

现在,什么是AJAX呢?它是一种现代的方式,可以帮助您将数据从JavaScript发送到PHP,并从PHP返回到JavaScript的响应,而无需刷新或重新加载页面


总之,JavaScript发出一个AJAX调用,该调用将向PHP发送数据,PHP将使用MySQL做一些事情,然后用您的结果回复JavaScript。

您需要注释掉几行,这样它就不会被解释为代码

//Opera 8.0+, Firefox, Safari
您的Ajax代码只创建Ajax对象并设置事件侦听器,它实际上从未发出请求,因此它当然无法工作

ajaxRequest.open("post", "/myphppage.php", true);
...
ajaxRequest.send("somevariable=" + variable);

您的代码中实际上没有未注释的文本,是吗?您使用的是jQuery吗?您没有列出标记,但您在示例中使用的是jQuery代码。用户没有给我们任何提示,说明他正在使用jQuery,那么您为什么要给他一段jQuery代码而不作进一步解释?也许是他使用$.post的那一行很抱歉,我没有注意到代码块是可滚动的。因此,我的答案也不是很有用。