Main.php というメイン ページがあります。このページには、クリックすると div の innerHTML (既に Main.php にあり、divResults と呼ばれる) を Results.php からの結果で設定するボタンがあります。
Results.php が呼び出されると、返された HTML "These Are The Results" が適切に受信され、コンテンツとして Main.php の divResults に設定されます。ただし、Results.php の JavaScript は実行されません。例として、単純な window.alert を実行してみます。コード例は次のとおりです。
アクションを開始するための Main.php リンク ボタン:
<img src="$MyImageSource" onclick=\"ExpandDropdownDiv()\" />
Main.php JavaScript 関数 ExpandDropdownDiv():
function ExpandDropdownDiv(){
if (window.XMLHttpRequest)/* code for IE7+, Firefox, Chrome, Opera, Safari */
{
xmlhttp=new XMLHttpRequest();
}
else
{/* code for IE6, IE5 */
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)/* && xmlhttp.status==200) */
{
document.getElementById("divResults").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","Results.php",true);
xmlhttp.send();
}
Results.php コード例:
<script type="text/javascript">
alert("Success");
</script>
These Are The Results
------------------ 編集 - 更新 ------------------
Results.php からの単純なアラートは単なる例です。これを機能させることができれば、残りの問題は自分で解決できると思います。ただし、div の innerHTML を設定した後、Main.php の javascript にアラートを配置することを提案するコメントがいくつかあることに気付きました。では、div が設定された後、JavaScript で本当にやりたいことを説明しましょう。
画像 1は、jquery と dropdown-check-list 拡張子 (.js) を使用して変換された、いくつかの通常の「選択」html 要素を示しています。ユーザーが下部のカラフルな下向き矢印をクリックすると、div が展開され(画像 2)、この別の .php ファイル内にさらに 2 つの "Select" 要素が生成されます... html が返され、div に配置されます。したがって、ページ全体をリロードする必要はなく、新しい選択ドロップダウンを既存のもののすぐ下に配置できます。
問題は、これらの通常の選択要素を「変換」するために、その HTML に対して実行する必要がある JavaScript がいくつかあることです。
$(document).ready(function() {
$(".MultiSelect").dropdownchecklist( {firstItemChecksAll: true, maxDropHeight: 300 , searchTextbox: true, width: 100, textFormatFunction: function(options) {
var selectedOptions = options.filter(":selected");
var countOfSelected = selectedOptions.size();
var size = options.size();
switch(countOfSelected) {
case 0: return "All";
case 1: return selectedOptions.text();
/* case size: return "All"; */
default: return countOfSelected + " selected";
}
}
}
);
}
したがって、どういうわけか、この他の .php ファイルから生成された HTML に対して JavaScript を実行できるようにする必要があります。上記のコードを呼び出すだけで、divs innerHTML が満たされた後、2 つの新しいドロップダウンではなく、既存のドロップダウンのみが再生成されます。
サンプル画像