首页 > 后端开发 > php教程 > 循环出来的Select选项问题

循环出来的Select选项问题

WBOY
发布: 2016-06-23 14:22:11
原创
1113 人浏览过

select php

选择月份:		<select name="month">			<?php 			for($i="1"; $i<="12"; $i++){				if($i<10){					echo "<option>0".$i."月</option><br>";				}else{					echo "<option>".$i."月</option><br>";				}			} 			?>		</select>
登录后复制

这个月份是通过For循环出来的,默认是选择1月份,当选择其它月份再点提交后,又显示回1月份了,有什么办法可以停留在当前选择的月份呢?


回复讨论(解决方案)

这样写

<select name="month"><?php $m = 5; // 假定选中的是 5 月for($i="1"; $i<="12"; $i++){  printf("<option value=%d %s>%02d月</option>", $i, $m == $i ? ' selected' : '', $i);}?></select>
登录后复制
登录后复制
登录后复制

这样写

<select name="month"><?php $m = 5; // 假定选中的是 5 月for($i="1"; $i<="12"; $i++){  printf("<option value=%d %s>%02d月</option>", $i, $m == $i ? ' selected' : '', $i);}?></select>
登录后复制
登录后复制
登录后复制

我选择8月,点提交后怎么又回到5月了??

你难道不赋值吗?

你难道不赋值吗?
谢谢,value=%d %s>%02d月 这一句是什么意思呢?

这样写

<select name="month"><?php $m = 5; // 假定选中的是 5 月for($i="1"; $i<="12"; $i++){  printf("<option value=%d %s>%02d月</option>", $i, $m == $i ? ' selected' : '', $i);}?></select>
登录后复制
登录后复制
登录后复制

选择仓库:		<select name="depot">			<?php			$ckSQL = "SELECT MC001,MC002 FROM {$dataBase}CMSMC";			$ckQuery = sqlsrv_query($conn,$ckSQL);			if( $ckQuery === false) {				die( print_r( sqlsrv_errors(), true) );			}			$ck = $_POST["depot"];			while($ckRow = sqlsrv_fetch_array($ckQuery)) {					//echo "<option>".$ckRow[1]."</option>";				printf("<option >%s</option>", $ckRow[1], $ck == $ckRow[1] ? ' selected' : '', $ckRow[1]);			}			sqlsrv_free_stmt( $query);			?>			<option value="全部" <?php if($_POST["depot"] == "全部"){echo 'selected="selected"';} ?>>全部</option>		</select>
登录后复制
为什么这一段按照你的方法改就不管用了呢?
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板