空()函數,我寫了這個代碼:複選框選中得到即使值爲空,在PHP
<?php if (!empty($isLocal)) {echo "checked";} ?>
聽起來很簡單?如果$ isLocal不是空的,那麼檢查它,否則不檢查它。
然而,它不斷檢查它,儘管空值!這有什麼問題?
我不得不在頁面上重複幾次isLocal,它仍然是一樣的 - 它仍然是空的,但複選框被選中。是的,我查看了HTML代碼,看看「checked」是否寫入,而不是。它只在PHP邏輯內打印「checked」。
的HTML代碼是這樣的
Enable this machine:<input type="checkbox" value="1" name="isLocal"
<?php if (!empty($isLocal)) {echo "checked";} ?> />
一件事 - 我從XML文件中使用SimpleXML加載isLocal。
$configurations = simplexml_load_file('configs.xml');
foreach ($configurations->xpath("/configurations") as $t)
{
$isLocal=$t->isLocal;
}
但是,你看,問題是它可以看到它是否爲空或有值。我不能使用「isset()」,因爲它總是設置爲空值。
由於HTML沒有顯示檢查的屬性,所以你會回顯出來,這聽起來像別的東西可能會切換複選框 - 該頁面上是否有任何可能改變內容的JavaScript? – ernie 2013-03-22 22:02:18
沒有Javascript。這就是爲什麼我感到困惑。如果我回顯「$ isLocal」,並且在複選框之前顯示空值,那麼在應該取消選中時,複選框仍會被檢查。複選框後,我也回覆$ isLocal,它仍然是空的。 – netrox 2013-03-25 17:23:45
由於您在查看源代碼時看到的呈現HTML未顯示「checked」,因此其他內容正在檢查該複選框。這可能是您的瀏覽器會話管理,JavaScript或其他。這不太可能是你的PHP的問題。 – ernie 2013-03-25 17:55:44