2012-05-02 24 views
1

只有我選中的複選框被放入$ _POST。我想要那些被檢查爲$ _POST的值爲'true',非檢查的值爲'false'。無論如何這樣做或POST請求總是隻包含關於選中的複選框的信息。如何發送未選中的複選框以發佈

我能想到的唯一的事情就是使用隱藏的表單字段,只需用複選框操縱這些字段。

+0

你可以在PHP端創建一個複選框名稱的數組,並通過它循環來查看它們是否是'$ _POST'ed,如果是的話,它們是真的,否則它們是錯誤的。 – Patrick

+0

這就是我試圖避免的:),因爲我有很多從XML文件中提取的複選框,我不想真正讀取XML文件一次以顯示,並且一次比較結果 – user740521

+0

,除非它是絕對的大量的XML文件,或者你沒有把XML文件解析到一個函數中,讀取文件應該是非常直接的 – Patrick

回答

0

它只會包含選中的複選框的內容。你必須通過使用表單助手或輸入過濾器來模擬,否則它會以你喜歡的方式連接你的變量/數組。

這樣的功能將需要您使用每個窗體的所有複選框,然後可以設置爲真正的whats發現並留下false false whats not detected。

0
你可以

從PHP做:

if(isset($_POST['checkbox'])||$_POST['checkbox']!="yes"){ 
    //other code here 
} 

或者,你可以有一些JavaScript來添加一個隱藏的輸入之前提交未發送

0

這是不可能的複選框值,因爲它是瀏覽器依賴。

你可以只檢查它是否貼做

<?php 
if (isset($_POST['checkbox1'])) 
{ 
    // it's posted 
} 

或者使用!

<?php 
if (!isset($_POST['checkbox1'])) 
{ 
    // it's NOT posted 
} 
1

可以使用

<input type="checkbox" name="myCheckbox" value="true" /> 
<input type="hidden" name="myCheckbox" value="false" /> 

,然後解析服務器上的投入。你要麼得到falsetrue false,前者映射到false,後者映射到true

0

你可以在你的服務器端認爲那些誰是不是在後的數據集,是聽之任之。嘗試以驗證是否該變量設置:

$_POST['a_checkbox'] = (isset($_POST['a_checkbox'])) ? 1 : 0; 

使用truefalse,或數據ASE需要。