经常用Bootstrap开发后台,搞了一个标签库<?php <br />
namespace Think\Template\TagLib;<br>
<br>
use Think\Template\TagLib;<br>
<br>
class Bootstrap extends TagLib<br>
{<br>
<br>
protected $tags = array(<br>
/**<br>
* id 自定义ID,不定义默认(input+表单name)<br>
* class 自定义class<br>
* help 表单的输入说明 显示再表单下方<br>
* status 当前表单的初始化状态,可选值 :success,error,warning 三个值选其一<br>
* inline 内联表单<br>
* horizontal 水平排列的表单【说明:两个数字,逗号分割,实用这个排列方式需要在表单上面添加 form-horizontal】【示例:horizontal="3,9"】<br>
*/<br>
'text' => array('attr' => array('id', 'class', 'name', 'value', 'label', 'placeholder', 'help', 'status', 'inline', 'horizontal'), 'close' => 0),<br>
'password' => array('attr' => array('id', 'class', 'name', 'label', 'placeholder', 'help', 'status', 'inline', 'horizontal'), 'close' => 0),<br>
'number' => array('attr' => array('id', 'class', 'name', 'value', 'label', 'placeholder', 'help', 'status', 'inline', 'horizontal'), 'close' => 0),<br>
'email' => array('attr' => array('id', 'class', 'name', 'value', 'label', 'placeholder', 'help', 'status', 'inline', 'horizontal'), 'close' => 0),<br>
'url' => array('attr' => array('id', 'class', 'name', 'value', 'label', 'placeholder', 'help', 'status', 'inline', 'horizontal'), 'close' => 0),<br>
'file' => array('attr' => array('id', 'class', 'name', 'label', 'help', 'inline', 'horizontal'), 'close' => 0),<br>
'checkbox' => array('attr' => array('id', 'class', 'name', 'label', 'inline', 'disabled', 'checked', 'default'), 'close' => 0),<br>
'radio' => array('attr' => array('id', 'class', 'name', 'label', 'inline', 'disabled', 'checked', 'default'), 'close' => 0),<br>
/**<br>
* key : value值字段名称,默认id<br>
* text : 显示值字段名称,默认name<br>
*/<br>
'textarea' => array('attr' => array('id', 'class', 'name', 'label', 'value', 'label', 'rows', 'key', 'text', 'horizontal'), 'close' => 0),<br>
'select' => array('attr' => array('id', 'class', 'name', 'label', 'data', 'value', 'key', 'horizontal'), 'close' => 0)<br>
);<br>
private $ids = array();//自动生产ID保存,防止重复<br>
<br>
/**<br>
* @param $id string input的ID<br>
* @param $name string input的name值<br>
* @return string<br>
*/<br>
protected function setId($id, $name)<br>
{<br>
return empty($id) ? 'input' . ucfirst($name) . mt_rand(1, 9999) : $id;<br>
}<br>
<br>
/**<br>
* 根据表单的状态返回图标和状态<br>
* @param $status 表单当前的状态<br>
* @return array()<br>
*/<br>
protected function inputStatus($attr)<br>
{<br>
switch ($attr['status']) {<br>
case 'success':<br>
$icon = '<span></span>';<br>
$class = 'has-success';<br>
break;<br>
case 'error':<br>
$icon = '<span></span>';<br>
$class = 'has-error';<br>
break;<br>
case 'warning':<br>
$icon = '<span></span>';<br>
$class = 'has-warning';<br>
break;<br>
default:<br>
$icon = '';<br>
$class = '';<br>
break;<br>
}<br>
$icon = empty($icon) ? $icon : $icon . '<span>(' . $attr['status'] . ')</span>';<br>
return array('statusClass' => $class, 'icon' => $icon);<br>
}<br>
<br>
protected function wrapDiv($attr)<br>
{<br>
$class = array();<br>
if (!empty($attr['inline'])) array_push($class, 'form-inline');<br>
if (!empty($attr['statusClass'])) array_push($class, $attr['statusClass']);<br>
if (!empty($attr['has_feedback'])) array_push($class, $attr['has_feedback']);<br>
if (!empty($attr['class'])) array_push($class, $attr['class']);<br>
if (empty($attr['typeClass'])) {<br>
//输入类型<br>
array_push($class, 'form-group');<br>
} else {<br>
//选择类型 checkbox radio<br>
array_push($class, $attr['typeClass']);<br>
}<br>
return '<div>';<br>
}<br>
<br>
protected function wrapLabel($attr)<br>
{<br>
$id = $attr['id'];<br>
$width = '';<br>
if (array_key_exists('horizontal', $attr) && !empty($attr['horizontal'])) {<br>
$width = 'col-xs-' . $attr['horizontal'][0];<br>
}<br>
$typeClass = empty($attr['typeClass']) ? 'control-label' : $attr['typeClass'];<br>
return '<label>';<br>
}<br>
<br>
protected function input($attr)<br>
{<br>
$attrs = array();<br>
if (!empty($attr['placeholder'])) array_push($attrs, $attr['placeholder']);//输入框描述<br>
if (!empty($attr['describedby'])) array_push($attrs, $attr['describedby']);//输入框与图标关联,<br>
if (empty($attr['typeClass'])) {<br>
//没有这个类型为输入框类型 text/password/email....<br>
array_push($attrs, 'class="form-control"');//calss 属性<br>
if (!empty($attr['value'])) array_push($attrs, 'value=' . $attr['value']);//默认值<br>
} else {<br>
//选择类型 checkbox/radio<br>
if (!empty($attr['default'])) {<br>
$default = $this->_trim($attr['default']);<br>
$default = explode('.', $default);<br>
$default = $default[0] . "['" . $default[1] . "']";<br>
$checked = '<?php if(' . $default . ' == ' . $attr['value'] . '){ echo "checked" ; } ?>';<br>
} else {<br>
$checked = empty($attr['checked']) ? '' : 'checked';<br>
}<br>
if (!empty($attr['disabled'])) array_push($attrs, 'disabled');//是否禁用<br>
array_push($attrs, $checked);//默认值判断<br>
}<br>
$input = "<input>";<br>
return $input . $attr['icon'] . $attr['help'];<br>
}<br>
<br>
/**<br>
* 输入框默认表单赋值<br>
* @param $attr<br>
*/<br>
protected function set_input_attr($attr)<br>
{<br>
$attr['id'] = $this->setId($attr['id'], $attr['name']);<br>
$status = $this->inputStatus($attr);<br>
$attr['statusClass'] = $status['statusClass'];//wrapDiv上面显示<br>
$attr['icon'] = $status['icon'];//wrapLabel上面显示<br>
$attr['has_feedback'] = empty($status['icon']) ? '' : 'has-feedback';//wrapDiv上面显示<br>
$attr['describedby'] = empty($status['icon']) ? '' : 'aria-describedby="' . $attr['id'] . 'Status"';//表单上关联图标<br>
$attr['help'] = empty($attr['help']) ? '' : '<span>' . $attr['help'] . '</span>';<br>
$attr['placeholder'] = empty($attr['placeholder']) ? '' : 'placeholder="' . $attr['placeholder'] . '"';<br>
if (array_key_exists('horizontal', $attr) && !empty($attr['horizontal'])) {<br>
$attr['horizontal'] = explode(',', $attr['horizontal']);<br>
}<br>
return $attr;<br>
}<br>
<br>
public function _text($attr)<br>
{<br>
$attr['type'] = 'text';<br>
return $this->inputClass($attr);<br>
}<br>
<br>
public function _password($attr)<br>
{<br>
$attr['type'] = 'password';<br>
return $this->inputClass($attr);<br>
}<br>
<br>
public function _email($attr)<br>
{<br>
$attr['type'] = 'email';<br>
return $this->inputClass($attr);<br>
}<br>
<br>
public function _number($attr)<br>
{<br>
$attr['type'] = 'number';<br>
return $this->inputClass($attr);<br>
}<br>
<br>
public function _url($attr)<br>
{<br>
$attr['type'] = 'url';<br>
return $this->inputClass($attr);<br>
}<br>
<br>
public function _file($attr)<br>
{<br>
$attr['type'] = 'file';<br>
return $this->inputClass($attr);<br>
}<br>
<br>
public function _checkbox($attr)<br>
{<br>
$attr['typeClass'] = empty($attr['inline']) ? 'checkbox' : 'checkbox-inline';<br>
$attr['type'] = 'checkbox';<br>
return $this->checkClass($attr);<br>
}<br>
<br>
public function _radio($attr)<br>
{<br>
$attr['typeClass'] = empty($attr['inline']) ? 'radio' : 'radio-inline';<br>
$attr['type'] = 'radio';<br>
return $this->checkClass($attr);<br>
}<br>
<br>
public function _textarea($attr)<br>
{<br>
$id = $this->setId($attr['id'], $attr['name']);<br>
$textarea = '<textarea>' . $attr['value'] . '</textarea>';<br>
return $this->_return($attr, $textarea);<br>
}<br>
<br>
//选择类型表单<br>
protected function checkClass($attr)<br>
{<br>
$attr = $this->set_input_attr($attr);<br>
$input = $this->input($attr);<br>
$div = $this->wrapDiv($attr);<br>
$label = $this->wrapLabel($attr);<br>
return $div . $label . $input . $attr['label'] . '</label>
</div>';<br>
}<br>
<br>
//输出输入类型表单<br>
protected function inputClass($attr)<br>
{<br>
$input = $this->input($attr);<br>
return $this->_return($attr, $input);<br>
}<br>
<br>
//去除左右花括号<br>
private function _trim($field)<br>
{<br>
$field = ltrim($field, '{');<br>
return rtrim($field, '}');<br>
}<br>
<br>
public function _select($attr)<br>
{<br>
$data = $this->_trim($attr['data']);<br>
$key = empty($attr['key']) ? 'id' : $attr['key'];<br>
$text = empty($attr['text']) ? 'name' : $attr['text'];<br>
$value = $attr['value'];<br>
$id = $this->setId($attr['id'], $attr['name']);<br>
if (strpos($value, '{') !== false) {<br>
$value = $this->_trim($value);<br>
}<br>
$select = '<select>';<br>
$select .= '<?php foreach(' . $data . ' as $v): ?>';<br>
$select .= '<option> >{$v.' . $text . '}</option>';<br>
$select .= '<?php endforeach; ?>';<br>
$select .= '</select>';<br>
return $this->_return($attr, $select);<br>
<br>
}<br>
<br>
public function _return($attr, $form)<br>
{<br>
//判断是不是水平排列的表单<br>
$horizontal = false;<br>
if (array_key_exists('horizontal', $attr) && !empty($attr['horizontal'])) {<br>
$horizontal = true;;<br>
}<br>
$attr = $this->set_input_attr($attr);<br>
$div = $this->wrapDiv($attr);<br>
$label = $this->wrapLabel($attr);<br>
<br>
if ($horizontal) {<br>
return $div . $label . $attr['label'] . '<div>' . $form . '</div>';<br>
} else {<br>
return $div . $label . $attr['label'] . '' . $form . '';<br>
}<br>
}<br>
<br>
<br>
}
调用<taglib></taglib><br>
<?php <br />
<br>
$area = array(<br>
array('id'=>0,'name'=>'北京'),<br>
array('id'=>1,'name'=>'上海'),<br>
array('id'=>2,'name'=>'天津'),<br>
array('id'=>3,'name'=>'深圳')<br>
);<br>
$member = array(<br>
'gender'=>2,<br>
'email'=>'314231604@qq.com',<br>
'sleep'=>1,<br>
'eat'=>1,<br>
'username'=>'小二郎',<br>
'url'=>'http://www.baidu.com'<br>
) ;<br>
?><br>
<form>
<br>
<text></text><br>
<email></email><br>
<password></password><br>
<url></url><br>
<number></number><br>
<file></file><br>
<div>
<br>
<div>爱好</div>
<br>
<div>
<br>
<checkbox></checkbox><br>
<checkbox></checkbox><br>
</div>
<br>
</div>
<br>
<div>
<br>
<div>性别</div>
<br>
<div>
<br>
<radio></radio><br>
<radio></radio><br>
</div>
<br>
</div>
<br>
<textarea></textarea><br>
<select></select><br>
</form>
运行效果
Bootstrap标签库.rar
( 3.94 KB 下载:52 次 )
AD:真正免费,域名+虚机+企业邮箱=0元

了解Python编程的入门级代码示例Python是一种简单易学,功能强大的编程语言。对于初学者来说,了解Python编程的入门级代码示例是非常重要的。本文将为您提供一些具体的代码示例,帮助您快速入门。打印HelloWorldprint("HelloWorld")这是Python中最简单的代码示例。print()函数用于将指定的内容输出

PHP变量存储程序运行期间的值,对于构建动态且交互式的WEB应用程序至关重要。本文将深入探讨php变量,并通过10个真实的示例展示它们的实际应用。1.存储用户输入$username=$_POST["username"];$passWord=$_POST["password"];此示例从表单提交中提取用户名和密码,并将其存储在变量中以供进一步处理。2.设置配置值$database_host="localhost";$database_username="username";$database_pa

标题:从入门到精通:Go语言中常用数据结构的代码实现数据结构在编程中起着至关重要的作用,它是程序设计的基础。在Go语言中,有许多常用的数据结构,掌握这些数据结构的实现方式对于成为一名优秀的程序员至关重要。本文将介绍Go语言中常用的数据结构,并给出相应的代码示例,帮助读者从入门到精通这些数据结构。1.数组(Array)数组是一种基本的数据结构,是一组相同类型

《Go语言编程实例:Web开发中的代码示例》随着互联网的快速发展,Web开发已经成为各行业中必不可少的一部分。作为一门功能强大且性能优越的编程语言,Go语言在Web开发中越来越受到开发者们的青睐。本文将通过具体的代码示例,介绍如何利用Go语言进行Web开发,让读者能够更好地理解和运用Go语言来构建自己的Web应用。1.简单的HTTP服务器首先,让我们从一个

Java冒泡排序最简单的代码示例冒泡排序是一种常见的排序算法,它的基本思想是通过相邻元素的比较和交换来将待排序序列逐步调整为有序序列。下面是一个简单的Java代码示例,演示了如何实现冒泡排序:publicclassBubbleSort{publicstaticvoidbubbleSort(int[]arr){int

如何使用PHP编写库存管理系统中的库存分仓管理功能代码库存管理是许多企业中不可或缺的一部分。对于拥有多个仓库的企业来说,库存分仓管理功能尤为重要。通过合理管理和跟踪库存,企业可以实现不同仓库之间的库存调拨,优化运营成本,改善协同效率。本文将介绍如何使用PHP编写库存分仓管理功能的代码,并为您提供相关的代码示例。一、建立数据库在开始编写库存分仓管理功能的代码之

Java选择排序法代码编写指南及示例选择排序是一种简单直观的排序算法,其思想是每次从未排序的元素中选择最小(或最大)的元素进行交换,直到所有元素排序完成。本文将提供选择排序的代码编写指南,并附上具体的Java示例代码。算法原理选择排序的基本原理是将待排序数组分为已排序和未排序两部分,每次从未排序部分选择最小(或最大)的元素,将其放到已排序部分的末尾。重复上述

华为云边缘计算对接指南:Java代码示例快速实现接口随着物联网技术的快速发展和边缘计算的兴起,越来越多的企业开始关注边缘计算的应用。华为云提供了边缘计算服务,为企业提供了高可靠的计算资源和便捷的开发环境,使得边缘计算应用更加容易实现。本文将介绍如何通过Java代码快速实现华为云边缘计算的接口。首先,我们需要准备好开发环境。确保你已经安装了Java开发工具包(


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
