XAMPP脚本不结转到HTML文件
我有涉及一个按钮,切换能见度XAMPP脚本不结转到HTML文件
echo "<button onclick = \"toggle('showDetails')\">expand</button>" ;
echo "<script type=\"text/javascript\">";
echo " function toggle(id) { \n";
echo " var e = document.getElementById(id)\n";
echo " if(e.style.display == 'block')\n";
echo " e.style.display = 'none';\n";
echo " else\n";
echo " e.style.display = 'block';\n";
echo " }";
echo " </script>";
一个PHP文件,它运行完美我的PHP页面上。但是当我进入调用我的php页面的html页面时,脚本不起作用。我试图把我的脚本放在html页面的头部和html页面的正文中,但无济于事。我需要做什么才能让我的按钮在html页面上工作。
编辑: 这里是showDetails元素:
echo "<div id =\"showDetails\" style=\"display:none\">" ;
echo "<strong>client_address:</strong>" ;
echo $client_address;
echo "<br>" ;
echo "<strong>client_date:</strong>" ;
echo $client_date;
echo "</div>" ;
我也打开了我的html页面,并使用谷歌Chrome检查。当我点击HTML页面上的按钮,我在控制台中的错误:
未捕获的ReferenceError:当您通过ajax
式的方法调用这个文件php
切换是没有定义
(使用XMLHttpRequest
)并在您的现有页面中注入响应innerHTML
,javacscript
嵌入在script
标记将不会执行。在你的情况下,这意味着toggle
函数将永远不会被定义。
有几种方法来解决这个问题:
定义在
HTML
页toggle
功能发出此http
请求。这样,具有此功能的script
标记将从一开始就在那里,并在页面加载时执行。无关紧要的是,toggle
函数只是坐在那里,什么都不做,直到你调用menu.php
文件发回按钮。它具有执行这样的http
请求和执行无论是在嵌入式script
标签功能使用
jQuery
或类似的库。
选择第二个选项,你可以写:
$("#menuDiv").load("menu.php");
还有一些其他的方式来实现这一点,我指的是many previous answers这个问题。
注意还存在是它打破了javascript
的else
之前分号您if
- else
结构:
echo " e.style.display = 'none';\n";
做,而不是:
echo " e.style.display = 'none'\n";
我仍然遇到同样的问题。 –
当我把你在[pdf fiddle light]中提供的所有代码(http:// phpfiddle。org/lite),修正了分号,按钮按预期工作。但是,对于“调用我的php页面的html页面”是什么意思?也许我错过了那里的东西,因为'html'是由'php'生成的。也许你是指另一个'html'页面? – trincot
我有一个html页面文件。它调用一个PHP页面,例如var menu = new XMLHttpRequest(); menu.onreadystatechange = function(){if(menu.readyState == 4 && menu.status == 200){document.getElementById(“menuDiv”)。innerHTML = menu.responseText; } } menu.open(“GET”,“menu.php”,true); menu.send(); –
请将代码添加到您的问题你在哪里回显需要切换的** showDetails **元素。 – trincot
我用showDetails元素以及控制台错误更新了我的问题。 –