JavaScript/PHP[显示/隐藏]
我试图弄明白如何使用JavaScript显示/隐藏PHP脚本 JavaScript:JavaScript/PHP[显示/隐藏],php,javascript,html,dom,Php,Javascript,Html,Dom,我试图弄明白如何使用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 = "";
<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>
函数showhide(id){
if(document.getElementById){
obj=document.getElementById(id);
如果(obj.style.display==“无”){
obj.style.display=“”;
}否则{
obj.style.display=“无”;
}
}
}
机构代码:
<?php
echo "<a href='javascript:showhide('delivery.php');'>Show/Hide Delivery options</a>";
require "delivery.php" ?>
关于我为什么/如何让它工作的任何想法
感谢您的帮助 我想你要找的是ajax(例如)我想你要找的是ajax(例如)JavaScript是客户端,这意味着它是在从服务器下载网站后在你的电脑上执行的 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;
}
}
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
<input type="text" name="some_var" value="blah"/>
<input type="submit" value="Go"/>
</form>
<?php
echo "<a href='javascript:showhide('deliveryblock');'>Show/Hide Delivery options</a>";
echo "<div id='deliveryblock'>";
require "delivery.php"
echo "</div>";
?>
“some_var”可以通过如下表单发送到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;
}
}
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
<input type="text" name="some_var" value="blah"/>
<input type="submit" value="Go"/>
</form>
<?php
echo "<a href='javascript:showhide('deliveryblock');'>Show/Hide Delivery options</a>";
echo "<div id='deliveryblock'>";
require "delivery.php"
echo "</div>";
?>
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;
}
}
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
<input type="text" name="some_var" value="blah"/>
<input type="submit" value="Go"/>
</form>
<?php
echo "<a href='javascript:showhide('deliveryblock');'>Show/Hide Delivery options</a>";
echo "<div id='deliveryblock'>";
require "delivery.php"
echo "</div>";
?>
“some_var”可以通过如下表单发送到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;
}
}
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
<input type="text" name="some_var" value="blah"/>
<input type="submit" value="Go"/>
</form>
<?php
echo "<a href='javascript:showhide('deliveryblock');'>Show/Hide Delivery options</a>";
echo "<div id='deliveryblock'>";
require "delivery.php"
echo "</div>";
?>
你不能用你在这里做的方式来实现你想要做的事情。正如@Ozzy在评论中所说,这是不可能的
原因是Javascript代码从来不知道PHP代码在做什么。JS代码所知道的就是浏览器接收到的内容。这意味着它获取delivery.php
文件的内容作为页面的一部分,但不知道它来自页面其余部分的一个单独文件,更不用说知道该文件的调用了
快速答案是在require()
语句周围添加一个包装
元素
这将为您提供一个元素,Javascript代码可以将该元素作为show/hide函数的目标
因此,您的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;
}
}
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
<input type="text" name="some_var" value="blah"/>
<input type="submit" value="Go"/>
</form>
<?php
echo "<a href='javascript:showhide('deliveryblock');'>Show/Hide Delivery options</a>";
echo "<div id='deliveryblock'>";
require "delivery.php"
echo "</div>";
?>
你不能用你在这里做的方式来实现你想要做的事情。正如@Ozzy在评论中所说,这是不可能的
原因是Javascript代码从来不知道PHP代码在做什么。JS代码所知道的就是浏览器接收到的内容。这意味着它获取delivery.php
文件的内容作为页面的一部分,但不知道它来自页面其余部分的一个单独文件,更不用说知道该文件的调用了
快速答案是在require()
语句周围添加一个包装
元素
这将为您提供一个元素,Javascript代码可以将该元素作为show/hide函数的目标
因此,您的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;
}
}
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
<input type="text" name="some_var" value="blah"/>
<input type="submit" value="Go"/>
</form>
<?php
echo "<a href='javascript:showhide('deliveryblock');'>Show/Hide Delivery options</a>";
echo "<div id='deliveryblock'>";
require "delivery.php"
echo "</div>";
?>
我想你基本上是想在页面上显示/隐藏一些内容。您的showhide
功能仅适用于网页上的某些html组件。因此,只需尝试将“delivery.php”的内容放入一个类似
的元素中即可。然后使用showhide('deliverydiv')
我认为您基本上是在尝试显示/隐藏页面上的某些内容。您的showhide
功能仅适用于网页上的某些html组件。因此,只需尝试将“delivery.php”的内容放入一个类似
的元素中即可。然后使用showhide('deliverydiv')
这一点可能需要很长时间才能弄清楚(因为它不可能lol)查看AJAX/JQEURY。你可以通过AJAX加载不同的东西来模拟你想要做的事情,从而得到你想要的东西。你想显示php文件的内容还是执行的php文件的结果?服务器将读取php代码,而不管javascript显示/隐藏它。你真的有一个名为delivery.php
的id吗?这个可能是要花很长时间才能弄清楚(因为这是不可能的lol),看看AJAX/JQEURY。你可以通过AJAX加载不同的东西来模拟你想要做的事情,从而得到你想要的东西。你想显示php文件的内容还是执行的php文件的结果?服务器将读取php代码,而不管javascript显示/隐藏它。你真的有一个名为delivery.php
的id吗?