3

私はjavascriptでアプリケーションを持っています。私はそれを行うためにいくつかのチュートリアルに従いますが、実際には JavaScript コードの経験がありません。問題は、javascript から mysql データベースに変数の結果を渡す必要があることです。このサイトでいくつかの答えを見つけましたが、見つけたものをうまくやろうとしています。私が見つけたのは、ajaxとphpが必要だということです。私は ajax を使用したことがないため、何が間違っているのかわかりません。

ここにコードを入れれば、誰かが解決策を手伝ってくれるかもしれません。

これはJavaScriptコードです:

   

    関数 ajaxFunction(){
    var ajaxRequest;  

    試す{
        Opera 8.0 以降、Firefox、Safari
        ajaxRequest = 新しい XMLHttpRequest();
    }キャッチ(e){
        Internet Explorer ブラウザ
        試す{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }キャッチ(e){
            試す{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }キャッチ(e){
                エラーが発生しました
                alert("ブラウザが壊れました!");
                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.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 : 関数(xmlHTTP) {

        eval(mlHTTP.responseText);
    }

});
     

これはinsert.phpです:

        $fecha= date("Ymd H:i:s");
        $connnect= mysql_connect("localhost", "root", "xxxxxxxxx");
        mysql_select_db("データベース名");

        $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.');
                    }
                    そうしないと{

                        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 に答える