[英]How to get individual values from multiple checkbox dynamically using php?
我試圖從復選框 $mail_aspects['active']
和$mail_aspects['aspect_id']
獲取單個值。
但是使用下面的代碼,我只能獲得$mail_aspects['active']=1
。 但是我需要獲取選中和未選中的值以在數據庫中進行更新。
有人可以幫忙嗎?
<form method='post' style='display: inline-block;'>
<div class="col-md-12">
<?foreach ($customer['mail_aspects'] as $mail_aspects)
{ ?>
<table>
<tr>
<td>
<label>
<input type="checkbox" name="mail_aspects[]" <?=($mail_aspects['active'] == '1') ? 'checked' : ''?>
value="<?=$mail_aspects['active']?>,<?=$mail_aspects['aspects_id']?>">
<?=$mail_aspects['aspects_name']?>
</label>
</td>
</tr>
</table>
<? }?>
</div>
<button type='submit' name='submit' value='Submit'>Save Aspects</button>
</form>
使用PHP
if(isset($_POST['submit'])){
$mail_aspectsdet=$_POST['mail_aspects'];
for($i=0;$i<count($mail_aspectsdet);$i++)
{
$exp=explode(',',$mail_aspectsdet[$i]);//Explode id and name
$stmt=$db->exec("UPDATE customer_preferences set active=$exp[0] where customer_id=$customerID and aspects_id=$exp[1]");
}
}
要在$ _POST中接收未選中的復選框值,必須在添加復選框之前添加具有相同名稱和空值的隱藏輸入字段。 如果未選中該復選框,則將提交隱藏輸入的空值,否則將提交該復選框的值。
在您的情況下,它應類似於:
<form method='post' style='display: inline-block;'>
<div class="col-md-12">
<?foreach ($customer['mail_aspects'] as $mail_aspects)
{ ?>
<table>
<tr>
<td>
<label>
<input type="hidden" name="mail_aspects[<?=$mail_aspects['aspects_id']?>]" value="0" />
<input type="checkbox" name="mail_aspects[<?=$mail_aspects['aspects_id']?>]" <?=($mail_aspects['active'] == '1') ? 'checked' : ''?>
value="1">
<?=$mail_aspects['aspects_name']?>
</label>
</td>
</tr>
</table>
<? }?>
</div>
<button type='submit' name='submit' value='Submit'>Save Aspects</button>
</form>
重要的是,隱藏和復選框輸入的名稱是相同的。
您的PHP代碼應該可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.