3

Web ページで ajax を使用しています。java スクリプト関数 (html の head セクション) で使用される変数に jsp ページでアクセスしたいです。Jsp ページは、その変数を使用してデータベースからデータを取得しています。

どうやってやるの?

私を助けてください。

4

4 に答える 4

2

呼び出しデータが必要な場合は、 & を設定するか、事前に空の var を用意します。私が気付いたのは、ajax が新しい var を宣言したとしてもローカライズするということです。私が見つけた最良の方法は、既存のものに追加することです。新しい文字列またはリテラル配列/オブジェクトを使用して

 <script>
     function s(e){
      alert(e);
     }

      var a = '';

    //Jquery Version
     $.get('test.php',function(data){
       a += data;
      s(a);
      });

    // Javascript Version
      function ajaxFunction(){
        var ajaxRequest;  // The variable that makes Ajax possible!

        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;
                }
            }
        }
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
            if(ajaxRequest.readyState == 4){

                a += ajaxRequest.responseText;
                s(a);
            }
        }

        ajaxRequest.open("GET", "test.php" , true);
        ajaxRequest.send(null); 
    }

    $(function(){
    ajaxFunction();
    });
    //-->
    </script>
于 2012-10-06T06:48:25.717 に答える
1

新しいjspファイルを追加することでそれを行うことができます。フローは次のようになります:

  1. データベース レコードを取得するためのコードを含む、databaseOperation.jsp のような新しい jsp ファイルを作成します。
  2. JavaScript 関数を使用して、databaseOperation.jsp ファイルを呼び出し、JavaScript 変数を渡します。

  3. jsp ファイルでこの変数にアクセスし、DB から必要なコードを取得します。

于 2012-10-06T07:27:23.683 に答える
1

これは、呼び出しを行い、その変数をリクエストajaxで渡すことで簡単に実行できますajax

<script>
var id=1;

$.get("yourpage?id="+id,function(){

//get this id serverside using `get` 
})

</script>
于 2012-10-06T07:49:23.087 に答える
0

これを実現するには、アプローチを変更する必要があります。jspファイルに記述されているデータベースコードにjavascript変数の値を設定することはできません。これは、データベース コードがサーバー側からレンダリングされ、html のみがクライアントに送信されるためです。

これを実現するには、非同期サポートを備えたこのデータベース コードを備えたコントローラー (サーブレット) を使用し、jsp ファイルで、javascript ajax を介してこのコントローラーを呼び出し、要件に合わせて HTML DOM を操作します。

于 2012-10-06T06:47:25.920 に答える