2012-05-08 111 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')