0

mysqlクエリを開始して、ボタンが表示されているのと同じページに表示されるjavacriptコードブロックに結果を挿入するためのボタンが必要です。mysqlクエリは、ドロップダウンメニューの値から取得されます。

Homepage.phpには

two drop down menus

div id='one' to hold the results javscript code block

a button to stimulate the mysql query to be displayed in div id ='one' through Javascript

flow of the process is as such
1. user chooses an option from each drop down
2. when ready, the user clicks a button
3. the onclick runs a mysql query with selections from the drop down menu.
4. send the results as array from the mysql query into the javascript code block
5. display the results in div id ='one'

これはすべて同じページで行う必要があります。

私が抱えている問題は、ページが読み込まれるとすぐにjavasciptが静的になることです。mysqlの結果を表示する必要のあるページのjavascriptにプッシュできません。すべてを同じページに置くと問題が発生します。

私は自分のためにレイアウトされた正確なコードを探しているのではなく、これを達成するために使用されるべきプロセスの正しいフローを探しています。前もって感謝します!

私はもう試した

両方のドロップダウンを使用して、httprequestを使用した同じjavascript関数を呼び出します。関数は、mysql処理を実行するphpページに向けられました。その後、結果はhttprequestを介してホームページに戻されました。

Javascriptコードブロック全体を、mysqlの結果がすでに含まれているphp変数として保存し、HTTPRequestを介して変数をホームページに返して、この方法で動的なjavascriptコードを作成できると考えました。何も機能していません

4

4 に答える 4

4

AJAXと呼ばれるテクノロジーを使用する必要があります。jQueryの .ajax()メソッドをお勧めします。生のXHRを実行しようとすると、せいぜい苦痛になります。

コードを構造化する方法は次のとおりです。

  1. ページをロードします。
  2. ユーザーがオプションを選択します。
  3. onChangeリスナーがAJAXリクエストを起動します
  4. サーバーはリクエストを受信して​​処理します
  5. サーバーは、依存選択のオプションのJSON配列を送り返します
  6. クライアント側のAJAX送信者が応答を返します
  7. クライアントはselectを更新して、JSON配列の値を取得します。

基本的に、HTTPはステートレスであるため、ページが読み込まれると完了します。動的データについては、サーバーに連続してリクエストする必要があります。

于 2012-09-06T17:02:47.767 に答える
0

AJAXを使用し、

$.ajax({
    type: "POST",
    url: "yourpage.php",
    data: "{}",
    success: function(result) {
        if(result == "true") {
            // do stuff you need like populate your div
            $("#one").html(result);               
        } else {
            alert("error");
        }
    }
});
于 2012-09-06T17:05:27.217 に答える
0

この目的のために、ajaxを学ぶ必要があります。これは、ページをリロードせずにリクエストを行うために使用されます。これにより、mysqlへのバックグラウンド呼び出しを行うことができます。

あなたのコードはそのようなものになります

$("#submitbutton").live("click",function(){

$.ajax({url:"yourfile"},data:{$(this).data}).done(function(data){
//this data will in json form so decode this and use this in div 2
var x =$.parseJSON(data);
$("#div2").html(x.val());
})
})

サーバーに"yourfile"接続してデータベース要求を行うメインファイルです

于 2012-09-06T17:26:51.410 に答える
0

これが、onchangeメソッドを使用してMYSQLクエリを刺激し、Highchartに結果を表示させる方法です。主な問題は、返されたJSON配列がINTに変換する必要のある文字列であったことでした。次に、resultArray変数がhighChartのdata:部分で使用されます。

$(function(){
  $("#awayTeam").change(function(){ 
    $.ajax({
    type: "POST",    
    data: "away=" + $("#awayRunner").val(),
    dataType: "json",
    url: "/getCharts.php",
    success: function(response){
          var arrayLength = response.length;
          var resultArray = [];
          var i = 0;
          while(i<arrayLength){
              resultArray[i] = parseInt(response[i]);
              i++;
          }            

PHPコードでは、配列は次のようにJSONとして返される必要があります

echo json_encode($ awayRunner);

于 2012-12-13T17:07:24.613 に答える