我有两个文件,一个主页 scada.php 和一个子页面 site.php。Scada.php 包含这样的链接:
<FORM action="site.php" method="post">
<li><td class="normal"><input type="image" name="sitename"
value="Dublin" src="radiotower.jpg" alt="Dublin" title="Dublin"/>
Dublin
</td></li>
</form>
Site.php 在这里访问站点的名称:
<?php
$site = $_POST["sitename"];
echo "<title id='title'>".$site."</title>";
?>
然后它用 JS 检索它以显示在页面上并在数据库查询中使用:
<script>
var site = document.getElementById("title").innerHTML;
document.getElementById("alert").innerHTML = "<h2>"+site+"</h2>";
</script>
我检查了站点名称的字符串长度,以确保它只包括名称的字符(“都柏林”)而不是 HTML 标题标签,并且长度正确为 6 个字符。
这在 Chrome 中运行良好;一切顺利,按预期运行。在 IE 和 Firefox 中,它会发出一个错误,指出“站点名称”是未定义的索引。我在 site.php 中的全局变量上运行了一个 vardump,结果是 Chrome 出现了 3 个变量(sitename_x、sitename_y 和 sitename)。Firefox 和 IE 只出现了两个(sitename_x 和 sitename_y),并且缺少站点名。
我搜索了仅在 Firefox 和 IE 中出现的 $_POST 问题,但没有发现任何有用的东西。有人提到提交按钮没有被按下,但这绝对不是这里的问题,因为与页面交互的唯一方法是按下输入按钮。变量站点名到底在哪里迷路了?
编辑:我最初有点不清楚。该表单包含多个输入,因此更准确:
<FORM action="site.php" method="post">
<li><td class="normal"><input type="image" name="sitename" value="Dublin"
src="radiotower.jpg" alt="Dublin" title="Dublin"/>
Dublin
</td></li>
<li><td class="normal"><input type="image" name="sitename" value="Temple"
src="radiotower.jpg" alt="Temple" title="Temple"/>
Temple
</td></li>
</FORM>