只有我選中的複選框被放入$ _POST。我想要那些被檢查爲$ _POST的值爲'true',非檢查的值爲'false'。無論如何這樣做或POST請求總是隻包含關於選中的複選框的信息。如何發送未選中的複選框以發佈
我能想到的唯一的事情就是使用隱藏的表單字段,只需用複選框操縱這些字段。
只有我選中的複選框被放入$ _POST。我想要那些被檢查爲$ _POST的值爲'true',非檢查的值爲'false'。無論如何這樣做或POST請求總是隻包含關於選中的複選框的信息。如何發送未選中的複選框以發佈
我能想到的唯一的事情就是使用隱藏的表單字段,只需用複選框操縱這些字段。
通過添加隱藏字段具有相同名稱見Posting Unchecked Checkbox和Unchecked checkbox values
這是可能的。
它只會包含選中的複選框的內容。你必須通過使用表單助手或輸入過濾器來模擬,否則它會以你喜歡的方式連接你的變量/數組。
這樣的功能將需要您使用每個窗體的所有複選框,然後可以設置爲真正的whats發現並留下false false whats not detected。
從PHP做:
if(isset($_POST['checkbox'])||$_POST['checkbox']!="yes"){
//other code here
}
或者,你可以有一些JavaScript來添加一個隱藏的輸入之前提交未發送
這是不可能的複選框值,因爲它是瀏覽器依賴。
你可以只檢查它是否貼做
<?php
if (isset($_POST['checkbox1']))
{
// it's posted
}
或者使用!
:
<?php
if (!isset($_POST['checkbox1']))
{
// it's NOT posted
}
可以使用
<input type="checkbox" name="myCheckbox" value="true" />
<input type="hidden" name="myCheckbox" value="false" />
,然後解析服務器上的投入。你要麼得到false
或true false
,前者映射到false
,後者映射到true
你可以在你的服務器端認爲那些誰是不是在後的數據集,是聽之任之。嘗試以驗證是否該變量設置:
$_POST['a_checkbox'] = (isset($_POST['a_checkbox'])) ? 1 : 0;
使用true
和false
,或數據ASE需要。
你可以在PHP端創建一個複選框名稱的數組,並通過它循環來查看它們是否是'$ _POST'ed,如果是的話,它們是真的,否則它們是錯誤的。 – Patrick
這就是我試圖避免的:),因爲我有很多從XML文件中提取的複選框,我不想真正讀取XML文件一次以顯示,並且一次比較結果 – user740521
,除非它是絕對的大量的XML文件,或者你沒有把XML文件解析到一個函數中,讀取文件應該是非常直接的 – Patrick