[PHP]如何抓取表单中checkbox的值? _快乐生活_天富娱乐怎么注册_手机博猫游戏注册

您现在的位置是:主页 >快乐生活 >[PHP]如何抓取表单中checkbox的值? 主页 快乐生活

[PHP]如何抓取表单中checkbox的值?

快乐生活2020-05-22270人围观

以PHP+HTML来说,在处理网页表单时,必须将HTML和PHP两者做搭配,才能正确抓取表单中的值。透过HTML提交的资料传输到一个专门接收和处理表单的值,那该怎幺接收呢?这时候就必须搭配一下PHP语法就能正确接收。不过在接收的同时也会遇到一些突发状况,CheckBox就是一个例子。

如果单纯以TextBox、ListBox、Radio Button来说这都还好,因为传出的东西只有一个值,但CheckBox却可能时传出一个或是多个的值,那接收端要怎样做才能正确收到这些值呢?查了一下资料,其实在HTML那边加个阵列的型式就可以利用阵列的方式来读取这些值。

在介绍阵列处理的方式之前,大家要先了解一下CheckBox的HTML部分该怎幺正确的表示才确保传进去的值是阵列的型态。首先让我们看一下表单的CheckBox的部分该怎幺做变化。以下这是单一个CheckBox:

[PHP]如何抓取表单中checkbox的值?

type:这个栏位种类,在此是checkboxname:这个栏位的名称,在此是sportvalue:当勾选这选项时,表单会传出的值,在此是传出running,也可设定中文。label:在label标籤之内的「跑步」,是会显示在网页上。

HTML前端处理CheckBox

当然一般使用者可能都会像上面这样做设定,但超过一个以上的CheckBox时,可能久变成永远只能抓到第一个CheckBox的值,这就是出错了。如果你在同一组的选项中有超过一个以上的CheckBox的话,那您就要修改一下CheckBox的HTML部分,改成阵列模式。

有注意到不同的地方吗?就是在name的部分从原本的名称「sport」,改成多一个中括号,变成「sport[]」这样就可以利用阵列的储存方式,将有勾选的值储存到阵列,之后传送到PHP档案中,再以阵列的方式读取出来,就可以达成CheckBox传送一个以上的值了,这是标準的CheckBox的处理方式。

PHP后端处理CheckBox

当经过表单提交资料到PHP的档案内,我们就必须对这些值做接收的动作,并且要弄后续的处理。接收表单的方式在此只针对CheckBox的部分做简单说明,如果是其它的就请大家自己类推一下。

$sport = $_POST [“sport“];

这就是网页PHP后端接收资料的方式,一般来讲表单的传送方式都是透过「POST」传送,所以才会设定为POST,而[“sport“]这个东西,就是对应到网页表单中name的部分,也就是前面设定的sport[]。至于「$sport」这则是PHP的变数宣告而已。简单说就是把透过POST传送的表单中,里面name部分等于sport的所有值储存到$sport这个变数。

读出PHP阵列内的值

接下来要读出阵列的值,当然读出的方式有很多种,就看你怎幺去使用。以我自己的例子来说,因为我是要储存到资料库,所以我必须抓取每一个值,然后用逗号隔开接着再存进资料库,所以我可以不用透过foreach之类的东西来读取,直接使用内建的函数implode就可以达成。所以我的写法是:

$myallsport = implode (“,“, $sport);

在implode内有个「”,“」,这表示每读取一个阵列中的值,用逗号隔开。$sport则代表刚刚我们表单题交之后的阵列,$myallsport则会显示经过处理之后的答案。

假设刚刚我们勾选了「跑步」、「爬山」、「游泳」,若经过implode处理后,去echo变数$myallsport,就会呈现以下结果:「跑步,爬山,游泳」,利用透号隔开,这样就可以执行资料库语法储存进去啰!