2012-08-07 85 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

相关问题