遇到一个前台获取(截取)天数'日'的问题!

本文介绍了解决微信公众号预约功能中表单ID重复问题的方法。通过使用JSTL的fn:split函数提取日期中的“日”部分作为ID,确保了每个表单的唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上班一个月昨天写代码时,遇到一个需要输出每个人的预约时间。之前用的A标签,因为软件在微信公众号上使用,所以当链接过长时,微信会要用户复制该链接到浏览器上进行访问,此对用户是非常不友好的。所以把A标签改成用form 表单来进行提交。

 <c:forEach items="${val.reginfo}" var="valreg" varStatus="regnum">
  	<c:if test="${!empty valreg.timeflag}">
    	<div class="pat-underline"> </div>
     	<c:choose><c:when test="${valreg.regleavecount!=null && valreg.regleavecount !='0'}">
     	<c:set var="wydate" value="${fn:split(valreg.regdate,'-')}"/>
     	<form id="${deptid}${val.doctorid}${regnum.index}${wydate[2]}" action="" method="post">
						<input type="hidden" name="branchid"  value="${branchid}"/>
						<input type="hidden" name="regdate"  value="${valreg.regdate}"/>
						<input type="hidden" name="deptid"  value="${deptid}"/>
						<input type="hidden" name="doctorid"  value="${val.doctorid}"/>
						<input type="hidden" name="timeflag"  value="${valreg.timeflag}"/>
						<input type="hidden" name="openid"  value="${openid}"/>
						<input type="hidden" name="hospitalid"  value="${hospitalid}"/>
						<input type="hidden" name="regcee"  value="${valreg.regcee}"/>
						<input type="hidden" name="treatcee"  value="${valreg.treatcee}"/>
						<input type="hidden" name="doctorname"  value="${val.doctorname}"/>
						<input type="hidden" name="title"  value="${val.title}"/>
						<input type="hidden" name="doctordesc"  value="${val.doctordesc}"/>
						<input type="hidden" name="deptname"  value="${deptname}"/>
						<input type="hidden" name="branchname"  value="${branchname}"/>
						<input type="hidden" name="lockappointorderid" value="${lockappointorderid}"/>
						<input type="hidden" name="cliunitid"  value="${lockappointorderid}"/>
						<input type="hidden" name="scheduleid"  value="${valreg.cliunitid}"/>
						<input type="hidden" name="sex"  value="${valreg.sex}"/>
		</form>


过程中一个医生对应对应多个form,因为预约分上午、下午和其他日期。此时遇到一个问题,点预约的时候会弹出对话框,要保证所有form的ID的唯一性,下面是当时写的对应的代码(没有加日期作为ID)

<tr onclick='choiseDoctor("${deptid}${val.doctorid}${regnum.index}");'>
当时就出现一个问题,如果用户选择其他日期的,form的ID还是当天的所以不可取;
后来想到用天数当作ID(因为不想改后台的东西,所以在前台动手脚),当时百度半天,无果。
后来看到fn标签可以:fn:split()函数将一个字符串用指定的分隔符分裂为一个子串数组。果断用此方法,成功解决ID不唯一的问题
<c:set var="wydate" value="${fn:split(valreg.regdate,'-')}"/>
后台日期格式为2017-10-15,我以 - 字符进行分裂,会将日期分裂为数组,分别为年、月、日。我刚好取'日',来作为一个ID
fn:split()函数说明:http://www.runoob.com/jsp/jstl-function-split.html
本人第一次写,所以格式,排版方面有非常大的问题。希望各位读者多多见谅。也是为了给自己总结一下。大家看到后如果能提出什么更好,更优的方法,那我就谢谢大家了。








                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值