[英]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.