PHP form 表单 动态输出 解决方案 ,求交流和分享

歪SIR 发布于 2011/12/17 21:11
阅读 1K+
收藏 2
PHP

大家平时在编写PHP有表单的页面的时候,一般怎么处理表单的赋值问题. 特别是CHECKBOX

我的习惯是

<input type="text" name="name1"  value="<?php echo $foo['name1']; ?>"/>

<select name="name2">
                <option value="0"<?php $options->es('name2','0');?>>否</option>
                <option value="1"<?php $options->es('name2','1');?>>是</option>
</select>

这样的写的缺点就是字段多了过后就有累赘感,感觉很多重复的.

但是如果我写成了数组,通过循环来输出的话,又有点缺乏灵活性,感觉是要高级点了,但是一旦有了新的想法,也会改动一大片.

各位有没有比较好的方法, 一个比较好的度. 来分享一下吧.

 

加载中
0
pyawen
pyawen
下面是关于select 的处理,checkbox 稍微麻烦一点 也可以通过js来完成
<select name="name2" id="name2">
   <option value="0">否</option>
   <option value="1">是</option>
</select>
<script type="text/javascript">
   document.getElementById("name2").value = '<?php echo $val ?>';
</script>

0
磊

封装class.demo

<?php
loadCore('html/Html');
/**
 * 表单解释类
 * @author php-朱磊
 *
 */
class HtmlForm extends Html {
	
	/**
	 * 生成checkbox
	 * @param $array name:chekcbox名称.options:选项.selected:选中数组.gule:间隔,默认&nbsp;
	 * @param $params
	 */
	public function checkbox($array,$params=null){
		$name=$array['name'];
		$chkecboxArr=$array['options'];
		$selected=(array)$array['selected'];
		$gule=$array['gule']?$array['gule']:'&nbsp;';
		$checkboxs=array();
		if (!is_null($params)){//附加属性
			$appendParams='';
			foreach ($params as $key=>$val){
				$appendParams.=" {$key}='{$val}' ";
			}
		}
		foreach ($chkecboxArr as $key=>$val){
			$isSelected=in_array($key,$selected)?"checked='checked'":'';
			$checkboxs[]="<label><input type='checkbox' name='{$name}[]' value='{$key}' {$isSelected} {$appendParams} />{$val}</label>";
		}
		return implode($gule,$checkboxs);
	}
	
	/**
	 * 生成checkbox
	 * @param $array name:chekcbox名称.options:选项,多维数组.selected:选中数组.gule:间隔,默认&nbsp;
	 * @param $params
	 */
	public function checkboxTwo($array,$params=null){
		$name=$array['name'];
		$chkecboxArr=$array['options'];
		$selected=(array)$array['selected'];
		$checkboxKey=$array['key'];
		$checkboxValue=$array['value'];
		$gule=$array['gule']?$array['gule']:'&nbsp;';
		$checkboxs=array();
		if (!is_null($params)){//附加属性
			$appendParams='';
			foreach ($params as $key=>$val){
				$appendParams.=" {$key}='{$val}' ";
			}
		}
		foreach ($chkecboxArr as $val){
			$isSelected=in_array($val[$checkboxKey],$selected)?"checked='checked'":'';
			$checkboxs[]="<label><input type='checkbox' name='{$name}[]' value='{$val[$checkboxKey]}' {$isSelected} {$appendParams} />{$val[$checkboxValue]}</label>";
		}
		return implode($gule,$checkboxs);
	}
	
	/**
	 * 生成radio
	 * @param $array name:radio名称.options:选项.selected:选中数组.gule:间隔,默认&nbsp;
	 * @param $params
	 */
	public function radio($array,$params=null){
		$name=$array['name'];
		$chkecboxArr=$array['options'];
		$selected=$array['selected'];
		$gule=$array['gule']?$array['gule']:'&nbsp;';
		$checkboxs=array();
		if (!is_null($params)){//附加属性
			$appendParams='';
			foreach ($params as $key=>$val){
				$appendParams.=" {$key}='{$val}' ";
			}
		}
		foreach ($chkecboxArr as $key=>$val){
			$isSelected=((string)$key===(string)$selected)?"checked='checked'":'';
			$checkboxs[]="<label><input type='radio' name='{$name}' value='{$key}' {$isSelected} {$appendParams} />{$val}</label>";
		}
		return implode($gule,$checkboxs);
	}
	
	/**
	 * 生成radio
	 * @param $array name:chekcbox名称.options:选项,多维数组.selected:选中数组.gule:间隔,默认&nbsp;.key:value值.value:选项名称
	 * @param $params
	 */
	public function radioTwo($array,$params=null){
		$name=$array['name'];
		$chkecboxArr=$array['options'];
		$selected=$array['selected'];
		$checkboxKey=$array['key'];
		$checkboxValue=$array['value'];
		$gule=$array['gule']?$array['gule']:'&nbsp;';
		$checkboxs=array();
		if (!is_null($params)){//附加属性
			$appendParams='';
			foreach ($params as $key=>$val){
				$appendParams.=" {$key}='{$val}' ";
			}
		}
		foreach ($chkecboxArr as $val){
			$isSelected=((string)$val[$checkboxKey]===(string)$selected)?'checked':'';
			$checkboxs[]="<label><input type='radio' name='{$name}' value='{$val[$checkboxKey]}' {$isSelected} {$appendParams} />{$val[$checkboxValue]}</label>";
		}
		return implode($gule,$checkboxs);
	}
	
	/**
	 * 生成option
	 * @param $array
	 * @param $params
	 */
	public function options($array){
		$selected=$array['selected'];
		$options=array();
		foreach ($array['options'] as $key=>$val){
			$isSelected=((string)$key===(string)$selected)?"selected='selected'":'';
			$options[]="<option {$isSelected} label='{$val}' value='{$key}'>{$val}</option>";
		}
		return implode("\r\n",$options);
	}
	
	
	/**
	 * 生成options
	 * @param $array options:选项,多维数组.key:value值.value:选项名称
	 * @param $params
	 */
	public function optionsTwo($array){
		$selected=$array['selected'];
		$optionKey=$array['key'];
		$optionValue=$array['value'];
		$options=array();
		foreach ($array['options'] as $key=>$val){
			$isSelected=((string)$val[$optionKey]===(string)$selected)?"selected='selected'":'';
			$options[]="<option {$isSelected} label='{$val[$optionValue]}' value='{$val[$optionKey]}'>{$val[$optionValue]}</option>";
		}
		return implode("\r\n",$options);
	}
	
}

返回顶部
顶部