純粋なjavascript ajaxを使用するhtml-js-phpページがあります。エコーされた文に連結されたPHP変数がエコーされていません
このページは、セットアップとして保存する&の負荷を使用するアンケートです。次のボタンを押すと、現在表示されている質問が保存され、次の質問がロードされます。また、前のボタンがあり、最後に送信ボタンがあります。
htmlページにはすべてのものが入っているので、ajaxは質問とボタンを表示します。
予期せぬ結果は、PHP変数が残りの文字列とエコーされないことです。 phpコードは第2のコードブロックにあり、この結果を示すコードは第3のコードブロックにあります。ここで
は単純化されたコンテナです:
<body onload="loadSlide(<?php echo $_GET["ID"]; ?>, 'Next', hdn_Section_Counter.value)">
<div id="div_Questionnaire" class="Main_Content" >
<p class="Main_Content_Title"> Plannning For Success - Questionnaire </p>
<div class="Sub_Content" id="div_Questions">
<p class="Sub_Content_Title"> Questions </p>
<div id="div_Question_Holder"><!--Holds the questions-->
</div>
<input id="hdn_Section_Counter" type="hidden" value="0" Subject="1" Category="1" Section="1"/>
<!--Keeps track of current slide under 2 counting forums - section count (values 1-22), and Subject-Category-Section-->
</div>
</div>
</body>
質問の最初のセットが質問にロードするPHPファイルへのAJAX呼び出しを呼び出しボディのonloadを介してロードされます。
/*$_POST["ID"] was sent over through ajax in the send() method (using POST)
$_SESSION["uid"] is created on login, there is a session_start() (to resume
the session) at the beginning of the php file.*/
if($_POST["ID"]==$_SESSION["uid"]){
$Viewing_Student=false;
}else{
$Viewing_Student=true;
}
var_dump($Viewing_Student);//displays "false" as a boolean value
echo"<input class='Nav_Button' id='btn_Previous' type='button' value='Previous' onclick=\"saveSlide('/my-site/Tools/Planning_For_Success/save_slide.php', ".$_POST["ID"].", this.value, ".$Viewing_Student.")\"/>";
(のみ前のボタンを表示する)...問題があり、このPHPコードの部分にスキップする問題は、$ Viewing_StudentがHTMLになっていないです。他のすべては、その1つの変数を除いてhtmlに達します。 $ _POST ["ID"]が正しく連結されて表示されますが、この変数は正しく表示されないため、さらに混乱します。
コメントに記載されているように、変数は値(ブール値false)を保持します。これはvar_dumpによってチェックされます。
私は変数は、クロム、を見て、表示されていない知っているFirefoxとマイクロソフトエッジ開発者向けツール:変数がに表示されているはず
<input class="Nav_Button" id="btn_Previous" type="button" value="Previous" onclick="saveSlide('/my-site/Tools/Planning_For_Success/save_slide.php', 1, this.value,)">
(ここではChromeデベロッパーツールからコピーしたコード)以下のようにsaveSlide()の引数の終わり:echo文と
"this.value, false)"
すべてが、それさえもエコーうち、罰金のように見えます。これを除いて、1つの変数は常に欠けています。
私の質問を明確に述べるには...この変数($ Viewing_Student)が他の文字列/変数にエコーされないのはなぜですか?これをどうすれば解決できますか?私が使用しています
プログラム/言語/バージョン:
HTML 5
JS(純粋なJavaScriptのAJAX)3
のApache 2.4.17 7
崇高
PHP (すべて1 WAMPダウンロードでダウンロード)
実際にこの状況でブール値が意味をなさないようになります(それはあなたの学生を見ているかどうか、はい、いいえ)。 json_encode(marcが示唆しているように)を置き換えて、問題を修正しました。 – Tyler
それは並べ替えてうれしいねえ、我々は何かを学んだ! –