我有一個輸出HTML的PHP文件。由PHP創建的HTML是不按順序創建的
爲便於配置,我有一個second
PHP文件,該文件包含在first
PHP文件中。這包括文件只是包含一個數組定義如下:
<?
$myArray = array("key1"=>"value 1","key2"=>"value 2","key3"=>"value 3");
?>
在我的第一PHP文件我有以下
<? include("second.php"); ?>
<label>Select here:
<select id='mySelect'>
<? foreach ($myArray as $keyString=>$valueString) { ?>
<option value='<?= $keyString; ?>'><?= $valueString; ?></option>
<? } ?>
</select>
</label>
然而如下產生HTML輸出:
<label>Select here:
<select id='mySelect'>
</select>
<option value='key1'>value 1</option>
<option value='key2'>value 2</option>
<option value='key3'>value 3</option>
</label>
它將顯示爲一個空的選擇下拉列表,並顯示下面顯示的選項的文本!
我敢肯定這是一件愚蠢和簡單,因爲我敢肯定,我以前做過很多次沒有問題...
[更新]
調查後事實證明只有當我在FancyBox中顯示first
PHP頁面時纔會發生這種情況 - 當我直接加載時,這些選項將包含在您期望的<select>
中。
的的fancybox是通過JavaScript經由圖像的onClick事件打開如下(圖像是打開的fancybox在背景頁上,它是不first.php或second.php的一部分):
function openFirstPHP() {
$.fancybox({
href: "/first.php",
type: "ajax",
afterShow: function() {
// do some setting of some radio buttons' states - which works fine
}
});
}
有關信息,我叫first.php
這種方式,而不是在iframe或什麼是原因:
<img src="myImage.png" alt="my image" onClick="openFirstPHP();">
在我的JavaScript我已經(在
first.js
包含在
first.php
與通常
<SCRIPT>
標籤)
它也與調用頁面交互,因此避免我必須引用不同的文檔對象(我認爲)。
基本上一切工作沒有問題first.php
- 閱讀和餅乾的設置,與調用PHP頁面變量等不工作唯一的相互作用是這些<options>
標籤的插入順序不與<select>
標籤。
您使用的是哪個版本的PHP? – Theraot
- 版本5.5.21 –
這是不可能發生:)所有應該按預期工作。你使用任何複雜的緩存或特殊配置?這是一個原始輸出還是你在瀏覽器的'console'中看到的東西?看到測試執行,它在所有的php版本都可以正常工作... https://3v4l.org/mHc2r –