2013-07-22 100 views
3

我試圖使用複選框來顯示和更新MySQL數據庫中的記錄。我想根據是否選中來更改複選框的值。但我發現了這個錯誤:php回聲內複選框

解析錯誤:語法錯誤,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING

這有一個的投擲錯誤代碼行:

echo"<input type='checkbox' name='PLJan' {if (isset($_POST['PLJan'])) print 'value='checked''} $row->PLJan /> January ";

有沒有更好的方法讓我做到這一點,以便保存它將更新數據庫,如果該框被選中,則選中'checked',如果該框未選中,則選擇空白。

在此之前感謝您的halps。

回答

3
echo"<input type='checkbox' name='PLJan' {if (isset($_POST['PLJan'])) print 'value='checked''} $row->PLJan /> January "; 

應該

echo"<input type='checkbox' name='PLJan'"; 
if (isset($_POST['PLJan'])) { echo " value='checked'"; } 
echo $row->PLJan . "/> January "; 
+1

謝謝!我不得不把這個''出來,但它很好。只是出於某種原因,它提交「on」作爲值而不是「checked」。我不認爲單詞「on」在文件中的任何地方。 – SyrupandSass

0

不能包含字符串的moddle PHP邏輯。你需要打破它:

echo"<input type='checkbox' name='PLJan'"; 
if (isset($_POST['PLJan'])) echo ' checked'; 
echo " {$row->PLJan} /> January "; 
+1

這個答案本身沒有正確格式化,第一行最後需要一個'''才能用正確的語法 –

+0

更正。謝謝 – 2013-07-22 05:54:07

0
?> 
<input type='checkbox' name='PLJan' <?php if (isset($_POST['PLJan'])) echo 'checked="checked"'; ?> /> January 
<?php 
1

你的符號是全部關閉......簡單的辦法是仔細分解到muliple echo語句。

echo "<input type='checkbox' name='PLJan' "; 
if (isset($_POST['PLJan'])){ 
     echo "checked='checked'"; 
} 
echo "value='".$row->PLJan."'/> January "; 

這樣,您可以使用三元簡化它,如果

echo "<input type='checkbox' name='PLJan' "; 
echo (isset($_POST['PLJan'])?"checked='checked'":""); 
echo "value='".$row->PLJan."'/> January "; 

如果要壓縮下來到一個單一的線,你可以連接上的回波一起

echo "<input type='checkbox' name='PLJan' ".(isset($_POST['PLJan'])?"checked='checked'":"")." value='".$row->PLJan."'/> January "; 
+0

好的答案,你能猜到$ row-> PLJan會在html標籤中間吐出什麼 – Neeraj

+1

@Neeraj我會假設這是他的價值...更新的答案,以反映這一點,並將以前的值屬性更改爲檢查屬性 – Orangepill

+0

我將其更改爲 'echo「 PLJan。」/> January「;'它起作用。它只是向數據庫提交「on」而不是「checked」。 – SyrupandSass

0

嘗試這

<?php 

echo"<input type='checkbox' name='PLJan'"; 

if (isset($_POST['PLJan'])) 
{ 
echo ' checked'; 
} 
echo " {$row->PLJan} /> January "; 
?>