まず、このコミュニティに感謝します。私はゆっくりとこのことを理解し始めており、すべてのフィードバックに感謝しています. そうは言っても、私は別の質問をします。
状況: 私は新しいサイトを構築しようとしており、それを学習体験として使用して、いくつかの PHP を使用し、JavaScript を独学で学習しようとしています (注: 今は js に固執し、jquery にジャンプしないようにしたいと考えています)。 jsをうまく扱えるようになるまで)。上部に一連のサムネイルが表示されるギャラリーを作成しました。これをクリックすると、下の div にアートワーク、タイトル、説明が表示されます。
セットアップ: これらを番号 (配列など) ではなく名前で呼び出して交換できるようにしたいので、すべてのコンポーネントを含む id の div としてそれぞれを作成し、次の方法でターゲットの場所に呼び出しますスクリプト:
function changeDiv(id) {
var target = document.getElementById('generic');
var id = document.getElementById(id);
target.innerHTML = id.innerHTML;
}
本体では次のようになります。
<img src="images/thumbs/digital-art/thumb-space-oddity.jpg" id="thumb-space-odity" onclick="callDiv('space-oddity')"/>
...
<div class="gallery-frame" id="generic"></div>
現在、これは機能しますが、すべての div を呼び出す場所が必要なので、フッターに php インクルードを追加して、最後に読み込まれるようにしましたが、必要になる可能性のあるすべての画像が含まれています。
<div style="display:none;">
<?php include("gallery.php"); ?>
</div>
...しかし、これはページが実際にページを遅くするすべてのコンテンツをロードすることを意味するため、私が理解していることから. だから私は新しい解決策が必要です。
私の課題: まず、javascript だけでこれを行う方法はありますか? もしそうなら、私は喜んでそうします!
私ができないと仮定して、私はAJAXを調べてそれがどのように機能するかを確認し始めましたが、それが名目上の意味を持ち始めている間(JavaScriptにはまだ新しいので、半分しか取得できません)、w3schools.comとstackoverflowトピックの間に私はあると思います何をする必要があるかについての一般的な考えですが、まだ機能していません。
問題: 上記の stackoverflow コメントに基づいて、自分のインスタンスでサンプル関数を再作成しようとしましたが、次のように設定しました。
<script type="text/javascript">
function createXMLHttpRequest() {
try {
return new XMLHttpRequest();
}
catch (e)
{ alert('XMLHttpRequest not working'); }
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{ alert('Msxml2.XMLHTT not working'); }
try {
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{ alert('Microsoft.XMLHTTP not working'); }
alert("XMLHttpRequest not supported");
return null;
}
function callDiv(id) {
var xmlHttpReq = createXMLHttpRequest();
var url = "gallery.asp?ID=" + id;
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send();
}
</script>
私が読んだことから、最初のセクションをそのまま残して、関数を設定し (null とプロンプトは不要なので削除します)、callDiv 関数を以前のスクリプトと同じように実行しようとしました。gallery.php ページも .asp ページとして保存しましたが、php のままにしておくべきですか?
.ashx である必要がありましたか?
そして、それが呼び出されたファイルがわからないので、元の例で使用された「?REASON」が何を意味するのかわかりません。IDを探すように言っていると思って?IDを試しました。それは間違っていますか、それとも不必要ですか?
ありがとう!
-クリス