从复选框中获取所有值?

14 浏览
0 Comments

从复选框中获取所有值?

有没有一种简单的方法可以获取多个复选框的值并将它们存储在数据库中?


选择您喜欢的水果:

0
0 Comments

问题的原因是需要获取复选框的所有值。解决方法是使用implode和explode函数将数组转换为逗号分隔的列表,并使用SET数据类型在MySQL中表示复选框。可以使用以下代码实现:

$valueToStoreInDB = implode(",",$_POST['fruit']);
$fruitAsAnArrayAgain[] = explode(",",$dbvalue);

一旦得到逗号分隔的列表,可以将其直接插入到insert语句中。在MySQL中,可以使用SET数据类型来表示复选框。

0
0 Comments

问题:如何从复选框中获取所有的值?

原因:复选框在HTML中可以选择多个选项,但是在提交表单时,只能以数组的形式传递给服务器。因此,需要通过特定的命名方式来标识每个复选框,并在服务器端的处理程序中解析这些值。

解决方法:在HTML中,为每个复选框的name属性命名为相同的名称,并使用方括号[]表示它们是一个数组。例如,可以将name属性设置为"fruit[]",以便将所有选中的水果值作为数组传递给服务器。

在服务器端,可以通过检查$_POST['fruit']是否存在并且不为空来判断是否有复选框被选中。如果有选中的复选框,可以使用foreach循环遍历$_POST['fruit']数组,并逐个输出选中的值。

以下是示例代码:

Name your input like this : 


Then iterate on the $_POST['fruit'] :
if(isset($_POST['fruit']) && !empty($_POST['fruit']))   
    foreach($_POST['fruit'] as $fruit) echo $fruit;

以上代码片段中,首先使用name属性为"fruit[]"的复选框来表示水果选项。在服务器端,通过检查$_POST['fruit']是否存在并且不为空,可以判断是否有复选框被选中。如果有选中的复选框,可以使用foreach循环遍历$_POST['fruit']数组,并逐个输出选中的值。

通过以上方法,可以从复选框中获取所有的值,并在服务器端进行处理。

0
0 Comments

问题出现的原因是当复选框具有相同的名称以[]结尾时,返回的值将作为数组返回。

解决方法是在PHP中使用isset()和is_array()函数来检查复选框的值是否存在并且是一个数组。然后,可以使用foreach循环来遍历数组中的每个值,并执行相应的操作,比如将值插入数据库。另外,可以使用implode()函数将数组中的值以逗号分隔的形式合并为一个字符串,并将其插入数据库。

请注意,上述示例中存在一个明显的错误,即可能会输出"I have a apple"。这个例子并没有考虑到何时使用"a"和"an",请忽略这个错误。

下面是整理后的文章:

如果给复选框赋予相同的名称,并以[]结尾,那么返回的值将作为数组返回。

在PHP中,可以使用isset()和is_array()函数来检查复选框的值是否存在并且是一个数组。然后,可以使用foreach循环来遍历数组中的每个值,并执行相应的操作,比如将值插入数据库。另外,可以使用implode()函数将数组中的值以逗号分隔的形式合并为一个字符串,并将其插入数据库。

以下是示例代码:



if( isset($_POST['fruit']) && is_array($_POST['fruit']) ) {
    foreach($_POST['fruit'] as $fruit) {
        // eg. "I have a grapefruit!"
        echo "I have a {$fruit}!";
        // -- insert into database call might go here
    }
    // eg. "apple, grapefruit"
    $fruitList = implode(', ', $_POST['fruit']);
    // -- insert into database call (for fruitList) might go here.
}

请注意,上述示例中存在一个明显的错误,即可能会输出"I have a apple"。这个例子并没有考虑到何时使用"a"和"an",请忽略这个错误。

0