3

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

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

这是javascript代码:

   

    函数 ajaxFunction(){
    var ajaxRequest;  

    尝试{
        Opera 8.0+、火狐、Safari
        ajaxRequest = new XMLHttpRequest();
    } 抓住(e){
        Internet Explorer 浏览器
        尝试{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } 抓住 (e) {
            尝试{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } 抓住(e){
                出问题了
                alert("你的浏览器坏了!");
                返回假;
            }
        }
    }

    ajaxRequest.onreadystatechange = function(){
        如果(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.generatored_in = ;
      res.ip = "";
     -->
     var res1='res.bytes_transfered';
     var res2='res.total_time_seconds';
     var res3='res.generatored_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.generatored_in + "&res.ip =" + res.ip;
    ajaxRequest.open("POST", "insert.php" + queryString, true);
    ajaxRequest.send(null);
     新的 Ajax.Request('insert.php', {

    onSuccess:函数(xmlHTTP){

        评估(mlHTTP.responseText);
    }

});
     

这是 insert.php:

        $fecha= date("Ymd H:i:s");
        $connect= 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) 值 ('$res1','$res2','$res3','$res4','0','$ fecha')");
                如果 (!$queryreg) {
                die('没有 se ha podido ingresar su registro.');
                    }
                    别的{

                        die("Usted se ha registrado exitosamente!");
                    }


我希望有人能帮助我。我不知道该怎么办!

4

3 回答 3

0

看起来您的 POST 数据具有向后的键和值。在传递给 $.post 的数据中,键名需要在前,值在 : 之后。所以我认为应该是:

$.post('insert.php',{res1:res.bytes_transfered,res2:res.total_time_seconds,res3:res.generatied_in, res4: res.ip});
于 2012-11-12T03:02:35.683 回答
0

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

那么,什么是 AJAX?嗯,这是一种现代方式,可以帮助您将数据从 JavaScript 发送到 PHP,并从 PHP 到 JavaScript 获得响应,而无需刷新或重新加载页面。

因此,总而言之,JavaScript 进行了 AJAX 调用,该调用将向 PHP 发送数据,PHP 将对 MySQL 执行某些操作,然后用您的结果响应 JavaScript。

于 2012-11-12T03:03:54.027 回答
0

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

//Opera 8.0+, Firefox, Safari

您的 Ajax 代码仅创建 ajax 对象并设置事件侦听器,它实际上从未发出请求,因此它当然无法工作。请求看起来像这样

ajaxRequest.open("post", "/myphppage.php", true);
...
ajaxRequest.send("somevariable=" + variable);
于 2012-11-12T03:04:48.970 回答