2017-10-19 9 views
-2

と呼ばれています。AJAXを使用するのは全く新しいですが、いくつかの情報を動的に生成して日付を計算することを検討していますが、最終的に重要ではありません。AJAXリクエストは送信されていませんが、そのJavaScript関数は

AJAXコードを含むJavascript関数に週と年を送信する必要があります。この関数は、それが指しているファイルの内容に基づいて情報を返す必要があります。

"Run Planner"ボタンをクリックすると、次のコードが呼び出されます。ただし、「Accessed Function。Week = "+ week +" Year = "+ year"」のアラートだけが呼び出されます。要求するいずれかの動作しません

誰かが正しい方向に私を指すか、積極的に私が間違っていたきたところ見つけてもらえ

感謝:?

<script> 

function autoCalculatePlanner(week, year){ 

alert("Accessed Function. Week = " + week + " Year = " + year); 
xhttp = new XMLHttpRequest(); 

xhttp.onreadystatechange = function() { 

    if (this.readyState == 4 && this.status == 200) { 
     alert("State Ready"); 
     document.getElementById("test").innerHTML = this.responseText; 
     alert("Document Submitted"); 
    } 
    else{ 
     document.getElementById("test").innerHTML = "Error"; 
    } 
    xhttp.open("GET", "ajax/auto_calculate_planner.php?week=" + week + "&year=" + year, true);; 
    xhttp.send(); 
}; 


} 



</script> 

更新

私たち非常に便利ですし、少なくとも今の応答を呼び起こす

function autoCalculatePlanner(week, year) { 
alert("Accessed Function. Week = " + week + " Year = " + year); 
xhttp = new XMLHttpRequest(); 
xhttp.open("GET", "ajax/auto_calculate_planner.php?week=" + week + "&year=" + year, true);; 
xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     alert("State Ready"); 
     document.getElementById("test").innerHTML = this.responseText; 
     alert("Document Submitted"); 
    } else { 
     document.getElementById("test").innerHTML = "Error"; 
    } 
}; 
xhttp.send(); 
} 

:えー、次のように私のコードの修正版を提供し、「パニックしないでください」。しかし、何かを提出する代わりに「エラー」メッセージが表示されます。私は自分の研究をしようとしましたが、もう一度これを解決する方法を見つけることができません。

誰かが間違っている可能性がある場所に関する追加情報を提供してもらえますか?必要な場合があります

追加情報:

私がGETを介して処理しているしようとしているファイルは、「AJAX」という名前の子フォルダに含まれています。 そのファイルのコードが投稿されることが示唆されている場合は、私もそれを行います。

+1

の内側にあなたが狭くするより多くのデバッグを行う必要があり、xhttp.onreadystatechangeの外xhttp.openとxhttp.sendを呼び出す必要があります問題がダウン。ブラウザの開発者ツールを使用してください。コンソールを見てください。何か間違いはありますか?ネットワークタブを見てください。リクエストは送信されますか?あなたの期待通りに見えますか?あなたは反応を得ますか?あなたの期待通りに見えますか? – Quentin

+0

[mcve]を提供してください。スクリプトは表示されていますが、関数の呼び出し方法に関するコンテキストはありません。リンクのonclickイベントを使用していますか?これは、応答が受信される前にブラウザが離れて移動する原因になります。あなたは完全な[mcve]を提供する必要があります。 – Quentin

+0

あなたはこの[tag:php]というタグを付けました。どうして?質問にはPHPはありません。 – Quentin

答えて

1

onreadystatechangeコールバックまでは実際にリクエストを実行していません。要求が発生しない場合、状態は決して変更されません。

function autoCalculatePlanner(week, year) { 
    alert("Accessed Function. Week = " + week + " Year = " + year); 
    xhttp = new XMLHttpRequest(); 
    xhttp.open("GET", "ajax/auto_calculate_planner.php?week=" + week + "&year=" + year, true);; 
    xhttp.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
      alert("State Ready"); 
      document.getElementById("test").innerHTML = this.responseText; 
      alert("Document Submitted"); 
     } else { 
      document.getElementById("test").innerHTML = "Error"; 
     } 
    }; 
    xhttp.send(); 
} 

Reference docs

はここにあなたのコードの修正版です。

+0

@DontPanicこれは素晴らしいことですが、私は間違いなく正しい方向を指しています。私は "エラー"メッセージを受け取っていないので、何かが間違っているが、あなたは間違いなく私の質問に私を助けた。ありがとうございました!私は5分でこの答えを受け入れるでしょう。 – cmprogram

+0

喜んで助けました。私はMozillaのリファレンスへのリンクを追加し、コードを微調整しました。 –

+2

@ cmprogram私は今あなたが*エラーメッセージを*取得していると思いますか?その場合は、ブラウザのdevtoolsを確認し、[ネットワーク]タブをクリックします。 AJAXリクエストが表示され、ヘッダーとレスポンスを表示するには、それをクリックしてください。あなたは何がそこに間違っているのかを見ることができるはずです。 –

1

それは単にparanthesisの問題です、あなたはない

function autoCalculatePlanner(week, year){ 
 
alert("Accessed Function. Week = " + week + " Year = " + year); 
 
xhttp = new XMLHttpRequest(); 
 

 
xhttp.onreadystatechange = function() { 
 

 
    if (this.readyState == 4 && this.status == 200) { 
 
     alert("State Ready"); 
 
     document.getElementById("test").innerHTML = this.responseText; 
 
     alert("Document Submitted"); 
 
    } 
 
    else{ 
 
     document.getElementById("test").innerHTML = "Error"; 
 
    } 
 
    
 
}; 
 
xhttp.open("GET", "ajax/auto_calculate_planner.php?week=" + week + "&year=" + year, true);; 
 
    xhttp.send(); 
 

 
}

関連する問題