ページリダイレクトが発生した場合に値を返すために$_SESSIONを使用しています。
jqueryは$_SESSIONにアクセスできないため、PHPを使用して値を非表示のdivに出力し、値が取得されたらそのdivを削除することにしました。これを行うためのより良い方法があると思いますが、$_SESSION変数をjqueryに公開する他の方法がわかりません。
<?php
$pass_Back = $session->get_Pass_Back();
$session->clear_Pass_Back();
?>
<?php
if (count($pass_Back) != 0){
echo "<input class=\"field_Input_Left\" id=\"schedule_Description\" type=\"text\" name=\"schedule_Description\" value=\"" . array_shift($pass_Back) . "\"/><br />";
echo "<div id=\"pass_Back\" style=\"visibilty: hidden;\" ></div>";
} else {
echo "<input class=\"field_Input_Left\" id=\"schedule_Description\" type=\"text\" name=\"schedule_Description\"/><br />";
}
?>
これが完了したら、この新しい要素がDOMに追加されたかどうか、いつ追加されたかをjqueryに通知するメソッドが必要でした。したがって、要素が追加されたときに一致するようにプラグインlivequeryを使用しました。これは素晴らしいことです。
しかし、divの値にアクセスしようとすると、未定義であると表示されます。
$("#pass_Back").livequery(function(){
if ($("#class_Name").val() != 0){
var class_Name = $("#class_Name").val();
get_Schedule_Data(class_Name);
} else {
var class_Name = "ALL";
get_Schedule_Data(class_Name);
}
$value = $(this).attr("value");
auto_Fill_Schedule($("#pass_Back").attr("value"));
// destroy pass back
$("#pass_Back").remove();
});
firebugで確認すると、livequeryが追加された要素を検出した時点で、htmlが表示されないことに注意してください。DOMの準備ができていないと、livequeryが機能しませんでしたが、これが値が見つからない理由ですか?
どんな指導もありがたく受けました。