2013-02-26 125 views
1

我將複選框的狀態保存爲文本文件,並將其重新讀入以顯示已選中或未選中的框。保存部分是沒有問題的 - 取決於我是選中還是取消選中該框,值「選中」或「取消選中」寫入文本文件。迴應echo $lines[0];的結果與預期值一致。但是,如下面我的代碼所示,使用if ($lines[0] == "Checked")時,該值似乎未被檢測到,因此後面的回顯未被執行。這種情況的正確語法是什麼?如果PHP文本文件行等於,然後執行一些操作

 <?php 
     $file = "textfile.txt"; 
     $lines = file($file); 
     ?> 

     <input type="hidden" name="data1" value="Unchecked" /> 
     <input type="checkbox" name="data1" value="Checked" class="checkbox" 
     <?php 
     if ($lines[0] == "Checked") { 
     echo 'checked="checked"'; 
     } 
     ?> 
     /> 
+0

儘量把回聲到括號() – Stepo 2013-02-26 16:48:27

+0

這可能是由於黑色的空間。 – Sikian 2013-02-26 16:48:34

回答

3

您的$lines[0]變量中可能有換行符。

你可以做的是:

if (trim($lines[0]) == "Checked") { 

但是,你應該做的,是切換到一個數據庫。

+0

甚至更​​好,使用會話。因爲保存複選框的狀態是你做的事情,頁面到頁面,而不是永久保存到文件或數據庫中的東西。 – Husman 2013-02-26 16:50:27

+0

@Husman這將取決於OP;一個文本文件建議永久保存。 – jeroen 2013-02-26 16:52:26

+0

需要打開或關閉迷你CMS站點中的功能。不幸的是,我沒有使用MySQL數據庫的經驗,但迄今爲止,平面文件PHP數據庫正在按照我的希望工作。謝謝你的幫助。 – Chris 2013-02-26 16:52:30

1

該值可能因行結尾而異。 我建議你做到以下幾點:

if (stristr($lines[0], "unchecked")) { 
    echo ''; 
}else{ 
    echo 'checked="checked"'; 
} 
+0

非常感謝,這很好。 – Chris 2013-02-26 17:07:53

相關問題