簡體   English   中英

JavaScript / PHP [顯示/隱藏]

[英]JavaScript/PHP [Show/Hide]

我想弄清楚如何使用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" ?>

關於為什么/如何使它起作用的任何想法?

任何幫助表示贊賞!

我認為您正在尋找的是ajax(例如http://api.jquery.com/jQuery.get/

JavaScript是客戶端的,這意味着從服務器下載網站后,便可以在您的PC上執行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>

如果在文本字段中輸入“ blah”並將其發送,頁面將顯示“ somefile.php”,但如果輸入“ nyah”,則將顯示“ some_other_file.php”的內容。

希望這可以幫助。

您無法以在這里完成的方式來實現您想要的目標。 如@Ozzy在評論中所述,這是不可能的。

其原因是Javascript代碼從不知道PHP代碼在做什么。 所有的JS代碼都知道瀏覽器收到了什么。 這意味着它將delivery.php文件的內容作為頁面的一部分獲取,但不知道它是從一個單獨的文件起源到頁面的其余部分,更不用說知道該文件的名稱了。

快速的答案是在require()語句周圍添加一個環繞式<div>元素。

這將為您提供一個元素,您的Javascript代碼可以將其定位為show / hide函數。

因此,您的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代碼,但是您沒有向我們展示該文件的外觀,因此我只需要進行此假設即可)。

希望能有所幫助。

我認為您基本上是在嘗試顯示/隱藏頁面上的某些內容。 您的showhide函數僅適用於網頁上的某些html組件。 因此,只需嘗試將“ delivery.php”的內容放入<div id='deliverydiv'></div>類的元素中即可。 然后使用showhide('deliverydiv')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM