2011-04-27 287 views
0

我想將剛剛點擊的標記的id值傳遞給正在使用greybox加載到頁面上的php文件。將js變量傳遞給php變量

我得到了存儲在一個名爲linkID的js變量中的id,我可以通過location.href傳遞正確的id,但是這需要一個頁面重新加載並且不能和greybox一起工作。可以,也許我該如何使用Ajax來幫助在後臺發送這些信息? 任何幫助將不勝感激?

的JavaScript來獲取點擊的標籤

<script type="text/javascript"> 
function myCallback(caller) 
{ 
    var linkID =caller.id; 
    location.href="species/butterfly.php?linkID=" + linkID; 
    alert(linkID); 
    } 
</script> 

在HTML中的index.php標籤的ID

<div id="stump"> 
<a href="#" id="2" class="hedgehog descript" title="Hedgehog" 
rel="gb_page_center[1020, 550]" onclick="myCallback(this)"></a> 
</div><!--close stump div --> 

正試圖收到該ID的butterfly.php頁

<?php 
// Retrieve the URL variables (using PHP). 
$linkid = $_GET['linkID']; 
echo "Number: ".$linkid; 
?> 
+0

這是一個非常經典的AJAX的使用情況。你在使用像jQuery或Prototype這樣的JavaScript庫嗎? ajax調用的語法會因庫的不同或者您是否在使用而有所不同。 – 2011-04-27 20:36:46

+0

我正在使用jquery和原型爲不同的事情,我確保他們werent衝突。灰箱使用prototype.js,所以這將是這個Ajax調用。感謝您的快速回復 – 2011-04-27 20:47:41

回答

0
var myCallback = function(caller){ 
    var linkID = caller.id; 

    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("POST","species/butterfly.php",true); 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xmlhttp.send("linkID="+linkID;); 

    xmlhttp.onreadystatechange = function(){ 
     if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
      alert("Request complete. Data: "+xmlhttp.responseText); 
     } 
    }; 

    alert(linkID); 
} 

編輯:

純GreyBox:

var myCallback = function(caller){ 
    var linkID = caller.id; 
    caller.href = "species/butterfly.php?linkID="+linkID; 
} 
+0

我試過這個,我認爲它可能會工作,但是你會怎樣編寫標籤的 2011-04-27 20:48:51

+0

不,我真的不知道什麼是錯誤的,如果我離開href =「#」,因爲它只是在greybox彈出區域加載主頁。但是,如果我把href =「species/butterfly.php」放在蝴蝶頁面中,但由於id沒有顯示,所以ajax請求似乎沒有被髮送或接收。如果您有任何其他建議,這將非常有幫助。謝謝 – 2011-04-27 21:23:51

0

這將轉換JS變量PHP變量

<script> 
function sud(){ 

javavar=document.getElementById("text").value; 

document.getElementById("rslt").innerHTML="<?php 
$phpvar='"+javavar+"'; 
echo $phpvar.$phpvar;?>"; 
} 

function sud2(){ 
document.getElementById("rslt2").innerHTML="<?php 
echo $phpvar;?>"; 
} 

</script> 
<body> 
<div id="rslt"> 
</div> 

<div id="rslt2"> 
</div> 
<input type="text" id="text" /> 
<button onClick="sud()" >Convert</button> 
<button onClick="sud2()">Once Again</button> 

</body>