XAMPP脚本不结转到HTML文件

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切换是没有定义

+0

请将代码添加到您的问题你在哪里回显需要切换的** showDetails **元素。 – trincot

+0

我用showDetails元素以及控制台错误更新了我的问题。 –

(使用XMLHttpRequest)并在您的现有页面中注入响应innerHTMLjavacscript嵌入在script标记将不会执行。在你的情况下,这意味着toggle函数将永远不会被定义。

有几种方法来解决这个问题:

  • 定义在HTMLtoggle功能发出此http请求。这样,具有此功能的script标记将从一开始就在那里,并在页面加载时执行。无关紧要的是,toggle函数只是坐在那里,什么都不做,直到你调用menu.php文件发回按钮。它具有执行这样的http请求执行无论是在嵌入式script标签功能

  • 使用jQuery或类似的库。

选择第二个选项,你可以写:

$("#menuDiv").load("menu.php"); 

还有一些其他的方式来实现这一点,我指的是many previous answers这个问题。

注意还存在是它打破了javascriptelse之前分号您if - else结构:

echo "   e.style.display = 'none';\n"; 

做,而不是:

echo "   e.style.display = 'none'\n"; 
+0

我仍然遇到同样的问题。 –

+0

当我把你在[pdf fiddle light]中提供的所有代码(http:// phpfiddle。org/lite),修正了分号,按钮按预期工作。但是,对于“调用我的php页面的html页面”是什么意思?也许我错过了那里的东西,因为'html'是由'php'生成的。也许你是指另一个'html'页面? – trincot

+0

我有一个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(); –