首頁 後端開發 php教程 ThinkPHP模板使用指南

ThinkPHP模板使用指南

Jun 13, 2016 am 11:03 AM
gt lt name

ThinkPHP模板运用指南

使用例子:

{$webTitle|md5|strtoupper|substr=0,3}

编译后的PHP代码就是:

注意函数的定义和使用顺序的对应关系,通常来说函数的第一个参数就是前面的变量或者前一个函数使用的结果,如果你的变量并不是函数的第一个参数,需要使用定位符号,例如:

{$create_time|date="y-m-d",###}

编译后的PHP是:

函数的使用没有个数限制,但是可以允许配置TMPL_DENY_FUNC_LIST定义禁用函数列表,系统默认禁用了exit和echo函数,以防止破坏模板输出,我们也可以增加额外的定义,例如:

TMPL_DENY_FUNC_LIST=>"echo,exit,halt"

多个函数之间使用半角逗号分隔即可。

?

并且还提供了在模板文件中直接调用函数的快捷方法,无需通过模板变量,包括两种方式:

1、执行方法并输出返回值:

格式:{:function(…)}

例如,输出U方法的返回值:

{:U('User/insert')}

编译后的PHP代码是

?

2、执行方法但不输出:

格式:{~function(…)}

例如,调用say_hello函数:

{~say_hello('ThinkPHP')}

编译后的PHP代码是:


系统变量
除了常规变量的输出外,模板引擎还支持系统变量和系统常量、以及系统特殊变量的输出。它们的输出不需要事先赋值给某个模板变量。系统变量的输出必须以$Think. 打头,并且仍然可以支持使用函数。

1、系统变量:包括server、session、post、get、request、cookie

{$Think.server.script_name } // 输出$_SERVER变量

{$Think.session.session_id|md5 } // 输出$_SESSION变量

{$Think.get.pageNumber } // 输出$_GET变量

{$Think.cookie.name } // 输出$_COOKIE变量

支持输出$_SERVER、$_ENV、 $_POST、 $_GET、 $_REQUEST、$_SESSION和 $_COOKIE变量。后面的server、cookie、config不区分大小写,但是变量区分大小写。例如:

{$Think.server.script_name }和{$Think.SERVER.script_name }等效

SESSION 、COOKIE还支持二维数组的输出,例如:

{$Think.CONFIG.user.user_name}

{$Think.session.user.user_name}

系统不支持三维以上的数组输出,请使用下面的方式输出。

?

以上方式还可以写成:

{$_SERVER.script_name } // 输出$_SERVER变量

{$_SESSION.session_id|md5 } // 输出$_SESSION变量

{$_GET.pageNumber } // 输出$_GET变量

{$_COOKIE.name } // 输出$_COOKIE变量

?

2、系统常量 :使用$Think.const 输出

{$Think.const.__SELF__ }

{$Think.const.MODULE_NAME }

或者直接使用

{$Think.__SELF__ }

{$Think.MODULE_NAME }

?

3、特殊变量 :由ThinkPHP系统内部定义的常量

{$Think.version } //版本

{$Think.now } //现在时间

{$Think.template|basename } //模板页面

{$Think.LDELIM } //模板标签起始符号

{$Think.RDELIM } //模板标签结束符号

?

4、配置参数 :输出项目的配置参数值

{$Think.config.db_charset}

输出的值和C('db_charset') 的返回结果是一样的。

也可以输出二维的配置参数,例如:

{$Think.config.user.user_name}

?

5、语言变量:输出项目的当前语言定义值

{$Think.lang.page_error}

输出的值和L('page_error')的返回结果是一样的。
快捷输出
为了使得模板定义更加简洁,系统还支持一些常用的变量输出快捷标签,包括:

} //输出Session变量 和 {$Think.session.var} 等效

{#var} //输出Cookie变量 和 {$Think.cookie.var} 等效

{&var} //输出配置参数 和 {$Think.config.var} 等效

{%var} //输出语言变量 和 {$Think.lang.var} 等效

{.var} //输出GET变量 和 {$Think.get.var} 等效

{^var} //输出POST变量 和{$Think.post.var} 等效

{*var} //输出常量和 {$Think.const.var} 等效

如果需要输出二维数组,例如 要输出$_SESSION[‘var1’][‘var2’]的值 快捷输出可以使用:

} 的方式

同理

{#var1.var2}

可以输出 $_COOKIE[‘var1’][‘var2’]的值。

必须注意的是:快捷输出的变量不支持函数的使用。

所以,下面的用法是错误的:

{#var|strlen}
默认值输出
如果输出的模板变量没有值,但是我们需要在显示的时候赋予一个默认值的话,可以使用default语法,格式:

{$变量|default="默认值"}

这里的default不是函数,而是系统的一个语法规则,例如:

{$user.nickname|default="这家伙很懒,什么也没留下"}

对系统变量的输出也可以支持默认值,例如:

{$Think.post.name|default="名称为空"}

因为快捷输出不支持使用函数,所以也不支持默认值,默认值支持Html语法。
包含文件
可以使用Include标签来包含外部的模板文件,使用方法如下:

1、 使用完整文件名包含

格式:

例如:

这种情况下,模板文件名必须包含后缀。使用完整文件名包含的时候,特别要注意文件包含指的是服务器端包含,而不是包含一个URL地址,也就是说file参数的写法是服务器端的路径,如果使用相对路径的话,是基于项目的入口文件位置。

?

2、包含当前模块的其他操作模板文件

格式:

例如 导入当前模块下面的read操作模版:

操作模板无需带后缀。

?

3、 包含其他模块的操作模板

格式:

例如,包含Public模块的header操作模版:

?

4、包含其他模板主题的模块操作模板

格式:

例如,包含blue主题的User模块的read操作模版:

?

5、 用变量控制要导入的模版

格式:

例如

给$tplName赋不同的值就可以包含不同的模板文件,变量的值的用法和上面的用法相同。

?

6、使用快捷方式包含文件

格式:{include:模板文件规则}

其中的模板文件规则可以使用上面提到的5种方式。

注意:由于模板解析的特点,从入口模板开始解析,如果外部模板有所更改,模板引擎并不会重新编译模板,除非缓存已经过期。如果修改了包含的外部模板文件后,需要把模块的缓存目录清空,否则无法生效。
导入文件
传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用:

?

系统提供了专门的标签来简化上面的导入:

第一个是import标签 ,导入方式采用类似ThinkPHP的import函数的命名空间方式,例如:

Type属性默认是js, 所以下面的效果是相同的:

还可以支持多个文件批量导入,例如:

导入外部CSS文件必须指定type属性的值,例如:

上面的方式默认的import的起始路径是网站的Public目录,如果需要指定其他的目录,可以使用basepath属性,例如:

?

第二个是load标签,通过文件方式导入当前项目的公共JS或者CSS

例如:

在href属性中可以使用特殊模板标签替换,例如:

Load标签可以无需指定type属性,系统会自动根据后缀自动判断。

系统还提供了两个标签别名js和css 用法和load一致,例如:

?

另外,系统提供了普通标签的方式加载外部js和css文件。

{load: __PUBLIC__/Js/Common.js}

{load: ../Public/Css/common.css }
Volist标签
Volist标签主要用于在模板中循环输出数据集或者多维数组。

通常模型的select和findall方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。

在Action中首先对模版赋值:

$User = M('User');

$list = $User->select();

$this->assign('list',$list);

?

在模版定义如下,循环输出用户的编号和姓名:

{$vo.id}

{$vo.name}

Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定,但确保不要和name属性冲突,例如:

{$data.id}

{$data.name}

支持输出部分数据,例如输出其中的第5~15条记录

{$vo.name}

?

输出偶数记录

{$vo.name}

Mod属性还用于控制一定记录的换行,例如:

{$vo.name}


?

输出循环变量

{$k}.{$vo.name}

如果没有指定key属性的话,默认使用循环变量i,例如:

{$i}.{$vo.name}

如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的,例如:

{$key}.{$vo.name}

volist还有一个别名iterate,用法和volist是一样。
Foreach标签
foreach标签也是用于循环输出

{$vo.id}

{$vo.name}

Foreach标签相对比volist标签简洁,没有volist标签那么多的功能。优势是可以对对象进行遍历输出,而volist标签通常是用于输出数组。
Switch标签
模板引擎支持Switch标签,格式为:

输出内容1

输出内容2

默认情况

使用方法如下:

value1

value2

default

其中name属性可以使用函数以及系统变量,例如:

admin

default

对于case的value属性可以支持多个条件的判断,使用”|”进行分割,例如:

图像格式

其他格式

表示如果$_GET["type"] 是gif、png或者jpg的话,就判断为图像格式。

也可以对case的value属性使用变量,例如:

admin

member

default

使用变量方式的情况下,不再支持多个条件的同时判断。
比较标签
模板引擎提供了丰富的判断标签,比较标签的用法是:

内容比较标签>

系统支持的比较标签以及所表示的含义分别是:

? eq或者 equal:等于

? neq 或者notequal:不等于

? gt:大于

? egt:大于等于

? lt:小于

? elt:小于等于

? heq:恒等于

? nheq:不恒等于

他们的用法基本是一致的,区别在于判断的条件不同。

例如,要求name变量的值等于value就输出,可以使用:

value

或者

value

也可以支持和else标签混合使用:

相等不相等

?

当 name变量的值大于5就输出

value

当name变量的值不小于5就输出

value

比较标签中的变量可以支持对象的属性或者数组,甚至可以是系统变量:

举例说明:

当vo对象的属性(或者数组,或者自动判断)等于5就输出

{$vo.name}

当vo对象的属性等于5就输出

{$vo.name}

当$vo['name']等于5就输出

{$vo.name}

而且还可以支持对变量使用函数

当vo对象的属性值的字符串长度等于5就输出

{$vo.name}

变量名可以支持系统变量的方式,例如:

相等不相等

通常比较标签的值是一个字符串或者数字,如果需要使用变量,只需要在前面添加“$”标志:

当vo对象的属性等于$a就输出

{$vo.name}

所有的比较标签可以统一使用compare标签(其实所有的比较标签都是compare标签的别名),例如:

当name变量的值等于5就输出

value

等效于 value

其中type属性的值就是上面列出的比较标签名称
Range标签
Range标签用于判断某个变量是否在某个范围之内,包括in、notin和range三个标签。

可以使用in标签来判断模板变量是否在某个范围内,例如:

输出内容1

如果判断不再某个范围内,可以使用:

输出内容2

可以把上面两个标签合并成为:

输出内容1输出内容2

Value属性的值可以使用变量,例如:

输出内容1

变量的值可以是字符串或者数组,都可以完成范围判断。

也可以直接使用range标签,替换in和notin的用法:

输出内容1

其中type属性的值可以用in或者notin。
Present标签
可以使用present标签来判断模板变量是否已经赋值,例如:

name已经赋值

如果判断没有赋值,可以使用:

name还没有赋值

可以把上面两个标签合并成为:

name已经赋值 name还没有赋值
Empty标签
可以使用empty标签判断模板变量是否为空,例如:

name为空值

如果判断没有赋值,可以使用:

name不为空

可以把上面两个标签合并成为:

name为空 name不为空
Defined标签
可以使用defined标签判断常量是否已经有定义,例如:

NAME常量已经定义

如果判断没有被定义,可以使用:

NAME常量未定义

可以把上面两个标签合并成为:

NAME常量已经定义 NAME常量未定义
IF标签
如果觉得上面的标签都无法满足条件判断要求的话,我们还可以使用if标签来定义复杂的条件判断,例如:

value1

value2

value3

在condition属性中可以支持eq等判断表达式 ,同上面的比较标签,但是不支持带有”>”、”

value1

value2

必须改成:

value1

value2

除此之外,我们可以在condition属性里面使用php代码,例如:

ThinkPHP

other Framework

condition属性可以支持点语法和对象语法,例如:

自动判断user变量是数组还是对象

ThinkPHP

other Framework

或者知道user变量是对象

ThinkPHP

other Framework

由于if标签的condition属性里面基本上使用的是php语法,尽可能使用判断标签和Switch标签会更加简洁,原则上来说,能够用switch和比较标签解决的尽量不用if标签完成。因为switch和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,IF标签仍然无法满足要求的话,可以使用原生php代码或者PHP标签来直接书写代码。
标签嵌套
模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。

系统内置的标签中,volist(及其别名iterate)、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如:

{$sub.name}

上面的标签可以用于输出双重循环。

默认的嵌套层次是3级,所以嵌套层次不能超过3层,如果需要更多的层次可以指定TAG_NESTED_LEVEL配置参数。
使用PHP代码
Php代码可以和标签在模板文件中混合使用,可以在模板文件里面书写任意的PHP语句代码 ,包括下面两种方式:

第一种是使用php标签:

echo 'Hello,world!';

第二种就是直接使用原始的php代码:

但是php标签或者php代码里面就不能再使用标签(包括普通标签和XML标签)了,因此下面的几种方式都是无效的:

value

Php标签里面使用了eq标签,因此无效

if( {$user} != 'ThinkPHP' ) echo 'ThinkPHP' ;

Php标签里面使用了{$user}普通标签输出变量 ,因此无效。

if( $user.name != 'ThinkPHP' ) echo 'ThinkPHP' ;

Php标签里面使用了$user.name 变量输出 ,因此无效。

简而言之,在PHP标签里面不能再使用PHP本身不支持的代码。
原样输出
可以使用literal标签来防止模板标签被解析,例如:

value1

value2

value3

上面的if标签被literal标签包含,因此if标签里面的内容并不会被模板引擎解析,而是保持原样输出。

Literal标签可以用于页面的JS代码外面,确保JS代码中的某些用法和模板引擎不产生混淆。
模板注释
模板支持注释功能,该注释文字在最终页面不会显示,仅供模板制作人员参考和识别。

格式:{/* 注释内容 */ } 或 {// 注释内容 }

说明:在显示页面的时候不会显示模板注释,仅供模板制作的时候参考。

注意{和注释标记之间不能有空格。

例如:

{// 这是模板注释内容 }

{/* 这是模板

注释内容*/ }

模板注释支持多行可以。模板注释在生成编译缓存文件后会自动删除,这一点和Html的注释不同。
引入标签库
前面我们所讲述的标签用法都是内置的标签库或者内置模板的用法,事实上,内置模板引擎的标签库是可以无限扩展和增加标签的,一旦你扩展和使用了新的标签库,就必须要告诉模板当前要使用的标签库名称,否则不会自动导入,防止以后标签库大量扩展后增加解析工作量,导入标签库使用tagLib标签。

格式:

可以同时导入多个标签库,用逗号分隔。

例如:

表示在当前模板文件需要引入html标签库。要引入标签库必须确保有Html标签库的定义文件和解析类库(如何扩展这种方式请参考前面的标签库扩展部分)。Cx标签库内置导入,无需使用taglib标签导入。

引入后,html标签库的所有标签在当前模板页面中都可以使用了。外部导入的标签库必须使用标签库前缀的xml标签,避免两个不同的标签库中存在同名的标签定义,例如(假设Html标签库中已经有定义select和link标签):

标签库使用的时候忽略大小写,因此下面的方式一样有效:

?

如果你的每个模板页面都需要加载Html标签库的话,也可以通过配置直接预先加载Html标签库。

'TAGLIB_PRE_LOAD' => 'html' ,

如果有多个标签库需要预先加载的话,用逗号分隔。定义之后,每个模板页面都可以直接使用:

而不需手动引入Html标签库。

?

假设你确信Html标签库无论在现在还是将来都不会和系统内置的标签库存在相同的标签,那么可以配置TAGLIB_BUILD_IN的值把Html标签库作为内置标签库引入,例如:

'TAGLIB_BUILD_IN' => 'cx,html' ,

这样,也无需在模板文件页面引入Html标签库了,并且可以不带前缀直接使用Html标签库的标签:

注意,cx标签库是系统内置标签库,不能删除定义。
修改定界符
模板文件可以包含普通模板标签和XML模板标签,内置模板引擎的普通模板标签默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果之间有空格或者换行则被视为非模板标签直接输出。

例如:{$name} {$vo.name} {$vo['name']|strtoupper} 都属于普通模板标签

要更改普遍模板的起始标签和结束标签,请使用下面的配置参数:

TMPL_L_DELIM //模板引擎普通标签开始标记

TMPL_R_DELIM //模板引擎普通标签结束标记

例如在项目配置文件中增加下面的配置:

'TMPL_L_DELIM'=>'

'TMPL_R_DELIM'=>'}>',

普通标签的定界符就被修改了,原来的

{$name} {$vo.name}

必须使用

才能生效了。

?

普通模板标签主要用于模板变量输出、模板注释和公共模板包含。如果要使用其它功能,请使用XML模板标签,ThinkPHP包含了一个基于XML和TagLib技术的模板标签,包含了普通模板有的功能,并且有一些方面的增强和补充,更重要的一点是新的标签库模板技术更加具有扩展性。新的TagLib标签库具有命名空间功能,ThinkPHP框架内置了CX标签库。如果你觉得XML标签无法在正在使用的编辑器里面无法编辑,还可以更改XML标签库的起始和结束标签,请修改下面的配置参数:

TAGLIB_BEGIN //标签库标签开始标签

TAGLIB_END //标签库标签结束标记

例如在项目配置文件中增加下面的配置:

'TAGLIB_BEGIN'=>'[',

'TAGLIB_END'=>']',

原来的

相等不相等

就必须改成

[eq name="name" value="value"]相等[else/]不相等[/eq]

?

注意XML标签和普通标签的定界符不能冲突,否则会导致解析错误。

XML模板标签可以用于模板变量输出、文件包含、模板注释、条件控制、循环输出等功能,而且完全可以自己扩展功能。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

修復:截圖工具在 Windows 11 中不起作用 修復:截圖工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

如何修復無法連線到iPhone上的App Store錯誤 如何修復無法連線到iPhone上的App Store錯誤 Jul 29, 2023 am 08:22 AM

第1部分:初始故障排除步驟檢查蘋果的系統狀態:在深入研究複雜的解決方案之前,讓我們先從基礎知識開始。問題可能不在於您的設備;蘋果的伺服器可能會關閉。造訪Apple的系統狀態頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復它。檢查您的網路連接:確保您擁有穩定的網路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數據之間切換或重置網路設定(「常規」>「重置」>「重置網路設定」>設定)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

watch4pro好還是gt好 watch4pro好還是gt好 Sep 26, 2023 pm 02:45 PM

watch4pro和gt各自具有不使用的特點和適用場景,如果注重功能的全面性、高性能和時尚外觀,同時願意承擔較高的價格,那麼Watch 4 Pro可能更適合。如果對功能要求不高,更注重電池續航力和價格的合理性,那麼GT系列可能更適合。最終的選擇應根據個人需求、預算和喜好來決定,建議在購買前仔細考慮自己的需求,並參考各種產品的評測和比較,以做出更明智的選擇。

如何使用 iPadOS 17.4 優化 iPad 電池壽命 如何使用 iPadOS 17.4 優化 iPad 電池壽命 Mar 21, 2024 pm 10:31 PM

如何使用iPadOS17.4优化iPad电池寿命延长电池续航时间是移动设备体验的关键,iPad是一个很好的例子。如果您觉得iPad电池消耗速度过快,不用担心,在iPadOS17.4中有许多技巧和调整可以显著延长设备的运行时间。本深入指南的目标不仅仅是提供信息,而是改变您使用iPad的方式,增强您的整体电池管理,并确保您可以在无需充电的情况下更长时间地依赖您的设备。通过采用此处概述的做法,您朝着更高效、更谨慎地使用技术迈出了一步,这些技术是根据您的个人需求和使用模式量身定制的。识别主要的能量消耗者

请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 Jun 13, 2016 am 10:24 AM

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求

php拿不到name怎麼辦 php拿不到name怎麼辦 Nov 24, 2022 am 09:56 AM

php拿不到name是因為當表單元素的name和id的值不一樣的時候,瀏覽器是不能識別的,其解決方法:1、檢查部分錶單元素和框架元素是否用了name;2、檢查只能賦ID不能賦name的元素;3、針對多重選取框checkbox,可使用「join(',', $__POST['name'])」組成資料。

See all articles