2012-08-07 119 views
1

因此,我終於在我的畫廊網站上取得了一些進展,通過大家的幫助,謝謝。現在我有最後一個,希望很容易的問題。首先,這裏的場景:如何在Javascript中引用另一個頁面中的變量作爲變量

因爲我是JavaScript的新手我試圖去學習JavaScript的BRFORE我鑽研jQuery所以我試圖做的一切(我相信這個詞是)香草的JavaScript。在不進入所有代碼的情況下,我爲我的作品製作了一個畫廊,在頁面的頂部有一個滑塊,並在其中顯示所選作品(包括其他視圖,說明,標題等)的字段。現在我沒有采用多個陣列,而是構建了一個名爲「gallery/php」的頁面,其中包含所有將被調用到該字段中的預構建div(名爲「generic」)。使用innerHTML,我做了一個簡單的調用,以便當選擇了所需的縮略圖時,它會通過id調用相應的div並將其寫入「通用」div。

夠簡單...

的問題是,我對這些40,如果我做一個PHP包括和隱藏包含一個隱藏的div,而藝術品不顯示它需要永遠載入頁面,這似乎是一個非常糟糕的主意。我想要做的是修改我現在使用的函數,以便不必調用當前頁面上的id,而是知道要引用哪個外部頁面以及哪個div(基於id)來提取和填充'generic' div與。該腳本目前看起來是這樣的:

function changeDiv(art) { 
     viewer = document.getElementById('generic'), 
     targetInfo = document.getElementById(art); 
     viewer.innerHTML = targetInfo.innerHTML; 
} 

我想要做的是(不考慮語法):

function changeDiv(art) { 
    viewer = document.getElementById('generic'), 
    targetInfo = ***src = gallery.php, #(art);*** 
    viewer.innerHTML = targetInfo.innerHTML; 
} 

我見過的唯一的事情就是類似於我想要做的是.load()在jQuery中,但我不知道如何翻譯回到JavaScript。

+0

沒有任何JavaScript等價物,您必須使用普通的javascript ajax或jQuery的ajax或加載函數來做到這一點 – WatsMyName 2012-08-07 03:56:36

+0

謝謝薩賓 - 任何關於我想要使用的JavaScript的想法是? – user1311848 2012-08-07 04:01:56

+2

您可以使用jquery。這可以用幾行代碼使用jQuery來完成。 – WatsMyName 2012-08-07 04:08:21

回答

0

好的!這是我的嘗試。請注意,雖然這應該通過AJAX庫(如jQuery)進行審查,但這不是OP所要求的。

**另外,我不知道gallery.php的設置,所以我去了最好的嘗試。

**另外我知道這是可怕的,沒有驗證或其他任何好事​​,但這更多的是一個概念證明。 (對於那些注重實效的編程代碼示蹤劑)

假設你有一個gallery.php設置爲以下幾點:

<?php 
    $pull = $_GET["pull"]; 
    $gallery[0] = "<div>Your art work img tags here</div>"; 
    $gallery[1] = "<div>Some more art work</div>"; 
    //Pull from the changeDiv parameter in the JavaScript below. 
    echo $gallery[$pull]; 
?> 

我們將與一些JavaScript去像下面這樣:

var changeDiv = function(pull) { 
    //Pull parameter indicates an array 
    //index within the gallery.php $gallery array 

    var ajaxObj; 

    //Our AJAX objet shall be declared 
    if(window.XMLHttpRequest) { 
     ajaxObj = new XMLHttpRequest(); 
    } 
    else { 
     ajaxObj = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    //When the ajaxObj changes it's ready 
    //state, do this stuff below 
    ajaxObj.onreadystatechange = function() { 
     //But only if the ready state is 
     //really ready and the status is good to go 
     if(ajaxObj.readyState==4 && ajaxObj.status==200) { 
      var response = this.responseText; 
      document.getElementById("viewer").innerHTML=response; 
     } 
    } 
    //Open the async connection to 
    //gallery.php and send your GET 
    //global (pull) 
    ajaxObj.open("GET","gallery.php?pull="+pull,true); 

    //Send it and pray 
    ajaxObj.send(); 
} 

http://www.smashingmagazine.com/2008/10/16/50-excellent-ajax-tutorials/ - 一些教程列表爲AJAX

+0

謝謝克里斯託弗 - 這是遠遠超出我的理解,但我想我得到的一般想法。現在在頂部的php部分。是應該如何構建gallery.php頁面,還是添加到我的digital-artwork.php頁面的包含內容? – user1311848 2012-08-08 05:15:53

+0

謝謝 - 說實話,我仍在試圖找出如何「接受」的答案。它一直告訴我,我不能upvote(?),直到我15歲時,如果我正確地閱讀它 – user1311848 2012-08-09 05:04:10

相關問題