2012-05-08 109 views
0

我在弄清楚如何使用JavaScript來顯示/隱藏PHP腳本。JavaScript/PHP [顯示/隱藏]

的JavaScript:

<script type="text/javascript"> 
function showhide(id){ 
    if (document.getElementById){ 
    obj = document.getElementById(id); 
    if (obj.style.display == "none"){ 
    obj.style.display = ""; 
    } else { 
    obj.style.display = "none"; 
    } 
    } 
} 
</script> 

機身碼:

<?php 
echo "<a href='javascript:showhide('delivery.php');'>Show/Hide Delivery options</a>"; 
require "delivery.php" ?> 

爲什麼/我怎麼能得到這個工作任何想法?

任何幫助表示讚賞!

+8

這可能需要永遠弄清楚(因爲它不可能大聲笑) – Ozzy

+0

調查AJAX/JQEURY。你可以通過AJAX加載不同的東西來獲得你想要的東西,以模擬你想要做什麼。 –

+1

您是否顯示php文件的內容或執行的php文件的結果? – Zombaya

回答

1

JavaScript是客戶端,這意味着它在你的電腦上執行,之後該網站已經從服務器下載。

PHP是服務器端,這意味着它在服務器計算機上執行,然後它將純HTML頁面發送到您的PC。

這就是爲什麼它不可能。你必須使用PHP來做到這一點,使用一些變量。否則,您可以使用javascript/ajax向服務器發送請求,服務器然後將新信息發送回客戶端,然後客戶端可以更新頁面。

但它能夠更好地做它在PHP這樣的:

if (isset($_GET['some_var'])) { 
    switch ($_GET['some_var']) { 
     default: case "blah": 
       include("somefile.php"); break; 
     case "nyah": 
       include("some_other_file.php"); break; 
    } 
} 

「some_var」可以被髮送到PHP頁面的表單是這樣的:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET"> 
    <input type="text" name="some_var" value="blah"/> 
    <input type="submit" value="Go"/> 
</form> 

如果鍵入「等等,然後發送,頁面會顯示'somefile.php',但是如果你輸入「nyah」,它會顯示'some_other_file.php'的內容。

希望這會有所幫助。

1

你無法實現你想要在這裏做的事情。正如@Ozzy在評論中所述,這是不可能的。

原因是Javascript代碼從來不知道PHP代碼在做什麼。所有JS代碼知道的是瀏覽器接收到的內容。這意味着它將delivery.php文件的內容作爲頁面的一部分,但不知道它是從單獨的文件發送到頁面的其餘部分,更不用說知道該文件被調用了什麼。

快速回答是在require()語句周圍添加一個包裝<div>元素。

這會給你一個你的Javascript代碼可以針對顯示/隱藏功能的元素。

所以你的PHP代碼現在可能是這樣的:

<?php 
echo "<a href='javascript:showhide('deliveryblock');'>Show/Hide Delivery options</a>"; 
echo "<div id='deliveryblock'>"; 
require "delivery.php" 
echo "</div>"; 
?> 

(這並不認爲通過delivery.php生成的內容是有效的HTML代碼,但是你有沒有告訴我們是什麼文件的樣子,所以我只需要做出這樣的假設)。

希望有所幫助。

0

我想你基本上是試圖顯示/隱藏頁面上的一些內容。您的showhide函數僅適用於網頁上的某些html組件。所以試着把「delivery.php」的內容放到一個像<div id='deliverydiv'></div>這樣的元素中。然後使用showhide('deliverydiv')