根据复选框的值将“是"或“否"插入MySQL [英] Insert Yes or No into MySQL based on checkbox value

查看:81
本文介绍了根据复选框的值将“是"或“否"插入MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个复选框列表,如下所示,数字416、419等表示页码.它们用于2组字段,一组是"likebutton",另一组是"sendbutton".

I have a list of checkboxes that look like below, the numbers, 416, 419, etc represent a page number. They are for 2 sets of fields, one is "likebutton", the other is "sendbutton".

 <input type="checkbox" name="likebutton[]" value="416" />
 <input type="checkbox" name="likebutton[]" value="417" />
 <input type="checkbox" name="likebutton[]" value="418" />
 <input type="checkbox" name="likebutton[]" value="419" />
 ...more checkboxes
 <input type="checkbox" name="sendbutton[]" value="416" />
 <input type="checkbox" name="sendbutton[]" value="417" />
 <input type="checkbox" name="sendbutton[]" value="418" />
 <input type="checkbox" name="sendbutton[]" value="419" />
 ...more checkboxes

我想要实现的是,当这些复选框被选中时,我能够用MySQL中的likebutton和sendbutton字段的Yes(已选中)或No(未选中)数据更新每一行(页面).目前,我的mysql查询如下所示.仅当我有一个foreach函数并且勾选了一个或多个复选框时,这似乎才起作用.但是,如果我保留如下所述的代码,或者如果我未选中所有内容,则foreach函数会报错.

What I am trying to achieve is when these checkboxes get checked, I am able to update each row (page) with the data of either Yes (Checked) or No (Unchecked) for both likebutton and sendbutton fields in MySQL. Currently my mysql query look like something below. This seems to work only when I have one foreach function and if I tick off one or more checkboxes, but if i leave the codes as stated below or If I have everything unchecked, I get an error for the foreach function.

 foreach($_POST["likebutton"] as $pagenumberL)
 $YesNoL = isset($_POST["likebutton"]) ? 'Yes' : 'No';
 mysql_query("UPDATE pages SET likebutton='".$YesNoL."' WHERE page_id='".$pagenumberL."'");

 foreach($_POST["sendbutton"] as $pagenumberS)
 $YesNoS = isset($_POST["sendbutton"]) ? 'Yes' : 'No';
 mysql_query("UPDATE pages SET sendbutton='".$YesNoS."' WHERE page_id='".$pagenumberS."'");

关于我的问题的任何指针,或者关于我应该如何进行的更好建议?

Any pointer on my problem or better suggestion as to how I should proceed?

推荐答案

复选框(如您所述)的问题是未选中的复选框不会提交任何数据.

The problem with checkboxes (as you have noted) is that unchecked ones do not submit any data.

解决这个问题的标准技巧是...

The standard trick to get around this is...

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

选中此复选框后,将提交其值,如其稍后出现在文档中一样.如果未选中,则将提交隐藏的输入值.

When the checkbox is checked, its value is submitted as it appears later in the document. If unchecked, the hidden input value is submitted.

然后您可以按名称简单地检查值

You can then simply check the value by name

$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';

在特定情况下,在输入名称中包含page_id,例如

In your particular case, include the page_id in the input name, eg

<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">

在PHP中

foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
    $dbFlag = $likeFlag ? 'Yes' : 'No';

    // update DB
}

这篇关于根据复选框的值将“是"或“否"插入MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆