メインページのscada.phpとサブページのsite.phpの2つのファイルがあります。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>
サイト名の文字列の長さをチェックして、名前の文字( "Dublin")のみが含まれ、HTMLタイトルタグが含まれていないこと、および長さが6文字で正しいことを確認しました。
これはChromeで正常に機能します。すべてがスムーズで、期待どおりに実行されます。IEとFirefoxでは、「sitename」が未定義のインデックスであるというエラーが発生します。site.phpのグローバルでvardumpを実行した結果、Chromeは3つの変数(sitename_x、sitename_y、sitename)を生成します。FirefoxとIEは2つ(sitename_xとsitename_y)しか表示せず、sitenameがありません。
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>