我在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); } });
这是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!"); }
我希望有人可以帮助我。我不知道该怎么做!
答案 0 :(得分:0)
看起来您的POST数据具有向后键和值。在传递给$ .post的数据中,键名需要先出现,然后是:。所以我认为它应该是:
$.post('insert.php',{res1:res.bytes_transfered,res2:res.total_time_seconds,res3:res.generatied_in, res4: res.ip});
答案 1 :(得分:0)
你需要做的是让JavaScript将你的变量传递给PHP,然后PHP会在你的MySQL语句中使用它(很可能是通过PHP中的PDO)。
现在,AJAX是什么?好吧,它是一种现代方式,可以帮助您将数据从JavaScript发送到PHP,并获得从PHP到JavaScript的响应,而无需刷新或重新加载页面。
总而言之,JavaScript进行了一次AJAX调用,该调用将向PHP发送数据,这将对MySQL做一些事情,然后用你的结果回复JavaScript。
答案 2 :(得分:0)
您需要注释掉几行,以便它不会被解释为代码
//Opera 8.0+, Firefox, Safari
您的Ajax代码仅创建ajax对象并设置事件侦听器,它实际上从未发出请求,因此它当然无法工作。请求看起来像这样
ajaxRequest.open("post", "/myphppage.php", true);
...
ajaxRequest.send("somevariable=" + variable);