JavaScript/PHP [Show/Hide]

JavaScript/PHP [Show/Hide]

本文关键字:Hide Show PHP JavaScript      更新时间:2023-09-26

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

关于为什么/如何让它工作的任何想法?

任何帮助不胜感激!

JavaScript是

客户端的,这意味着在从服务器下载网站后,它会在您的PC上执行。

PHP 是服务器端的,这意味着它在服务器计算机上执行,然后向您的 PC 发送纯 HTML 页面。

这就是为什么它是不可能的。你必须使用 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的内容"。

希望这有帮助。

我认为你要找的是ajax(例如 http://api.jquery.com/jQuery.get/)

你无法以你在这里的方式实现你想要做的事情。正如@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代码,但您尚未向我们展示该文件的外观,因此我只需要做出该假设)。

希望有帮助。

我认为您基本上是在尝试显示/隐藏页面上的某些内容。您的showhide函数仅适用于网页上的某些 html 组件。因此,只需尝试将"交付.php"的内容放入像<div id='deliverydiv'></div>这样的元素中。然后使用 showhide('deliverydiv') .