php读取checkbox值几种方法

 更新时间:2016年11月25日 17:11  点击:1553

php教程获取checkbox多选项值时必须以数组形式了,下如test[]再用php post获取就ko了,下面看代码。

<form method="post" action="checktest.php">
<input name="test[]" type="checkbox" value="1" />
<input type="checkbox" name="test[]" value="2" />
<input type="checkbox" name="test[]" value="3" />
<input type="checkbox" name="test[]" value="4" />
<input type="checkbox" name="test[]" value="5" />
<input type="submit" name="submit" value="submit" />
</form>

注意上面input的name属性,各个属性内容都一样,而且都是test[],加上[]的原因在于让test的内容变成数组形式传递。
checktest.php的代码内容如下:

$str =implode(',',$_post['test']);

print_r($str);

12345

哦。下面看我一朋友写的。

php代码

<input type="checkbox" name="weeks[]" id="weeks" value=1>  
<input type="checkbox" name="weeks[]" id="weeks" value=2>  
<input type="checkbox" name="weeks[]" id="weeks" value=3>   

 

weeks后的中括号不可漏,否则用php获取的时候只能取到最后一个值。之后php就很好处理了,如下:

php代码

方法一:  
$weeks = $_post['weeks'];  
for($i=0;$i<count($weeks);$i++)  
echo $weeks[1]."<br>";   
  
方法二:  
$array = $this->request->getparameter("weeks[]");  
$str =implode(',',$array);  
echo $str;  

 

ange($low, $high),range($low, $high, $step);//创建顺序值的数组如:range(1,4)为(1,2,3,4)又如range('a','z')

each($array)按顺序返回数组的当前元素,并且将下一个元素设置为当前元素;

reset($array)将数组当前元素重新设置到数组开始处

list()可以用来将一个数组分解为一系列的值,如 list($a,$b)=each($array)

shuffle($array),array_rand($arg, $num_req);对数组随机排序

array_reverse($input),array_reverse($input, $preserve_keys)   返回原数组的反向排序

sort($array);对数组排序

 

php教程数组是一个重要的概念,它包含有大量的函数,方便人们的开发…现将它的数组分类,以方便查询及应用.
先说说php数组的定义…php数组包含两个项,key和value,可以通过key来获取相应的value,其中key又可以是数值和关联的,如$array[0],$array[one]…
创建数组
php中的数组声明跟其它语言的也有点小小的差别,但一样可以声明为一维,两维,三维及多维等,如
$array[0] = 1,$array = array(1,2,3); 一维数组,只包括三个值,属于数值型数组,引用时可用$array[0]来代表1,创建数值数组时可以省略索引.

$array = array(
   1 => “one”,
   2 => “two”,
   3 => “three”,
   4 => array(
    “one” => 1,
    “two” => 2,
    “three” => 3
   )
);

二维数组,同时又是关联数组,引用时可以$array[4][“one”]来代表1.
三维以上依此类推…
如果要批量创建数组,则可以通过下面这个函数:
array range ( mixed low, mixed high [, number step] )
如$array = range(1,6);代表array(1,2,3,4,5,6);
   $array = range(a,f); 代表 array(a,b,c,d,e,f);

输出数组
php中输出数组的函数有比较多,常用的有
bool print_r ( mixed expression [, bool return] )
void var_dump ( mixed expression [, mixed expression [, ...]] )
还有像echo,print,printf都可以输出单个数组.

<?
function relative_to_absolute($content, $feed_url) { 
preg_match('/(http|https教程|ftp):///', $feed_url, $protocol); 
$server_url = preg_replace("/(http|https|ftp|news):///", "", $feed_url); 

$server_url = preg_replace("//.*/", "", $server_url); 
    if ($server_url == '') { 
        return $content; 
    } 
    if (isset($protocol[0])) { 
$new_content = preg_replace('/href="//', 'href="'.$protocol[0].$server_url.'/', $content); 
$new_content = preg_replace('/src="//', 'src="'.$protocol[0].$server_url.'/', $new_content); 
    } else { 
$new_content = $content; 
    } 
    return $new_content; 

?>

//获得当前的脚本网址

<?
function get_php_url(){
        if(!empty($_server["request_uri"])){

 

$scriptname = $_server["request_uri"];
$nowurl = $scriptname;
        }else{
$scriptname = $_server["php_self"]; //
                if(empty($_server["query_string"])) $nowurl = $scriptname;
                else $nowurl = $scriptname."?".$_server["query_string"];
        }

//

        return $nowurl;
}

?>

 

 

join() 函数把数组元素组合为一个字符串。

join() 函数是 implode() 函数的别名。

例子

<?php教程
$arr = array('hello','world!','beautiful','day!');
echo join(" ",$arr);
?>输出:

hello world! beautiful day!

下面是一段dedecms搜索页面的条件利用了join函数

if($this->starttime > 0)
  {
   $ksqls[] = " arc.senddate>'".$this->starttime."' ";
  }
  if($this->typeid > 0)
  {
   $ksqls[] = " typeid in (".getsonids($this->typeid).") ";
  }
  if($this->channeltype > 0)
  {
   $ksqls[] = " arc.channel='".$this->channeltype."'";
  }
  if($this->mid > 0)
  {
   $ksqls[] = " arc.mid = '".$this->mid."'";
  }
  $ksqls[] = " arc.arcrank > -1 ";
  $this->addsql = ($ksql=='' ? join(' and ',$ksqls) : join(' and ',$ksqls)." and ($ksql)" );

它这里就构成了一条select * from 表 where 条件,根据$ksql多少来构造成一条完整的sql查询语句

注释:join() 可以接收两种参数顺序。但是由于历史原因,explode() 是不行的。你必须保证 separator 参数在 string 参数之前才行。

 

数据库教程中的表可通过键将彼此联系起来。主键(primary key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

php教程 数据类型和变量
php是弱类型的,一个变量不需要预先声明,也不需要指定类型。php中变量是$加上变量名,php的变量是区分大小写的。 例如上例中的 $my='my'。
php支持的变量类型包括:布尔型,整型,浮点型,字符串,数组和对象。前四种很常用,也和其他语言类似,不多做介绍。数组和对象后文具体介绍。
php中有函数来检测 对象的类型,它们是 getttype。gettype返回一个string,它的值可以是array,boolean,double,integer,object,resource,string 和 unknow type. php也支持显式的类型转换,语法和c类似。
转换操作符 转换为
(array) 数组
(bool) (boolean) 布尔型
(int) (integer) 整数
(object) 对象
(float),(double),(real) 浮点数
(string) 字符串
例如:
 代码如下:
<?php
$str ='a string';
$num=15;
$numstr='123.3';
echo gettype($str),'<br/>';
echo gettype($num),'<br/>';
echo gettype($numstr),'<br/>';
$numstr=(float)$numstr;
echo gettype($numstr);
?>

输出结果为:

string
integer
string
double

还有函数可以用来判断一个变量是不是某种类型,例如 is_array(),is_bool()等等,用法都类似。

3. 函数和变量作用域
php声明函数的方法很简单,形式如下:
 代码如下:
function functionname(parameters){
function body
}

不需要指定返回类型,括号中也不需要指定变量类型,只要有变量名就可以。例如:
 代码如下:
<?php
function taxedprice($price,$taxrate){
return $price*(1+$taxrate);
}
echo taxedprice(100, 0.03);
?>

默认情况下,php是按值传递参数的,在函数内改变参数的值并不会改变函数外变量的值,但是php也支持按引用传递,语法和c一致,&$paramname,例如,下面一个经典的例子:
 代码如下:
<?php
function swap1($x,$y){
$t=$x;$x=$y;$y=$t;
}
function swap2(&$x,&$y){
$t=$x;$x=$y;$y=$t;
}
$a=3;$b=5;
swap1($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
swap2($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
?>

输出结果:

a is 3, b is 5
a is 5, b is 3

php的函数还支持参数的默认值,语法和c也是一样的。例如:
 代码如下:
<?php
function taxedprice($price,$taxrate=0.03){
return $price*(1+$taxrate);
}
echo taxedprice(100);
?>

下面介绍变量的作用域。php的变量作用域和c很类似,有局部变量,函数参数,全局变量,静态变量4种。局部变量就是在函数内声明的变量,函数参数是在函数首部声明的变量;不在函数中声明的变量是全局变量,全局变量可以在任何地方访问到,但是和c不同的是,如果在函数中要修改全局变量的值需要用global关键字显式指定它是全局变量,否则php就会声明一个同名的局部变量并且覆盖它。例如:
 代码如下:
<?php
$taxrate=0.03; //global
function change1() {
$taxrate+=1;
}
function change2() {
global $taxrate;
$taxrate+=1;
}
change1();
echo $taxrate,'<br/>';
change2();
echo $taxrate,'<br/>';
?>

输出的结果是:

0.03

1.03

php还有一种超级全局变量。超级全局变量是由php系统预定义的,主要用来访问与环境有关的信息,例如当前用户会话,用户操作环境和本地环境等。超级全局变量是一个数组,例如$_server中存储了服务器相关的信息。$_get,$_post,$_files,$_cookie中分别存储了客户端采用get提交,和post的提交的信息,上传的文件,cookie信息等。这些变量的使用都很简单,需要什么信息只需要查找

4 变量的变量
和c一类的静态语言不同,php的变量名本身可以是一个变量,这对于需要动态生成很多变量的时候是很便利的。例如:
 代码如下:
<?php
$r="hello";
$$r="i am hello";
echo $hello;
?>

输出结果为: i am hello

5.流程控制语句
主要包括,if else, while,for,do while,switch. 这些和c语言都很像,基本是一致的。不多做介绍。有些不同,php的 elseif是一个关键字,是连在一起的,而c语言是else if

[!--infotagslink--]

相关文章

  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • Ant design vue table 单击行选中 勾选checkbox教程

    这篇文章主要介绍了Ant design vue table 单击行选中 勾选checkbox教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-25
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • C#方法的总结详解

    本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25