亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將未選中的復選框提交給控制器

如何將未選中的復選框提交給控制器

PHP
蠱毒傳說 2021-04-30 14:25:03
好吧,首先我在數據庫上有一個“設置”表,其中有“名稱”和“值”字段,它是一種配置類型的表,其中的值可以是從字符串到布爾值等的任何值?,F在,在我的刀片上,我有一個帶有各種輸入的表單,其中包括“文本”,“選擇”,“復選框”等。在控制器上提交表單時,我foreach為每個屬性運行一個where,$request將其鍵作為名稱存儲,并將其值存儲為它在數據庫上的值。$agency_id = Auth::user()->agency->id;$settings = AgencySettings::whereAgencyId($agency_id)->get();foreach ($request->except('_token') as $key => $value){    $setting = $settings->where('name','=',$key)->first();    if (boolval($setting))    {        $setting->value = $value;        $setting->update();    }else{        $setting = new AgencySettings;        $setting->agency_id = $agency_id;        $setting->name = $key;        $setting->value = $value;        $setting->save();    }}除了不在復選框內的未選中復選框外,其余一切都運行良好$request。我知道我可以像這樣處理它們,$request->has('name_of_checkbox')但是由于數據庫中表的動態性質,我不想在Controller上硬編碼特定設置的名稱。我的目標是,無論我在前端使用的不同設置的數量如何,Controller上的代碼都將相同(也許將來會需要添加更多設置)。所以我的問題是,有沒有一種方法可以在服務器端處理這些復選框而不必專門引用它們,或者有一種無論狀態如何始終將復選框的值返回給服務器的方法?我的第一個想法是使用javascript和隱藏的輸入,但是也許有更好的方法。
查看完整描述

2 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

您可以在每個要接收的復選框之前添加一個具有相同名稱的隱藏字段,例如:


<input type="hidden"   name="checkbox-1" value="0" /> 

<input type="checkbox" name="checkbox-1" value="1" /> My checbox 1 

如果未選中該字段,則將發送帶有0值的隱藏字段,而選中該字段時,將發送正確的真實值。


注意:確保您首先添加隱藏的字段,以便在選中該字段時收到已選中的字段。


查看完整回答
反對 回復 2021-05-14
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

另一種解決方案是簡單地檢查post數組中是否設置了“ checkbox-1”的值。因此,您將在控制器端將default設置為0并檢查值是否存在,而不是檢查它是0還是1。



查看完整回答
反對 回復 2021-05-14
  • 2 回答
  • 0 關注
  • 168 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號