我有兩個文件,一個主頁面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中,它會發出一個錯誤,指出「sitename」是一個未定義的索引。我在site.php的全局變量上運行了vardump,結果是Chrome變成了3個變量(sitename_x,sitename_y和sitename)。 Firefox和IE瀏覽器只出現了兩個(sitename_x和sitename_y),並且sitename丟失了。
我搜索了$ _POST問題,只發生在Firefox和IE中,並沒有發現任何有用的東西。有人提到沒有按下提交按鈕,但這絕對不是問題,因爲與頁面交互的唯一方式是按下輸入按鈕。在地球上哪裏可變sitename迷路了?
編輯:我最初有點不清楚。該表格包含多個輸入,所以這是更準確:
<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>
我不認爲這些都包含了價值,不能以這種方式依賴圖像表單輸入。讓自己的生活變得簡單,將添加到表單中並使用該變量($ _POST ['site']):) – niaccurshi 2013-02-28 16:01:30
同意niaccurshi - Chrome行爲實際上不符合標準。看到[這篇文章](http://stackoverflow.com/questions/5681837/cant-find-an-input-type-image-value-in-post) – 2013-02-28 16:03:05