最近用DEDECMS完成一个自定义表单,要用到地区的三级级联,地区肯定要使用option下拉框,如果让人一个个填肯定不行,DEDECMS内置的联动类型被注释掉了,网上有解决联动类型的例子,但存在后台信息的是枚举,都是数字,不方便查看,网上的解决方案都不怎么完全,尝试了一下没有成功,自己便采取了比较取巧的方案,用js代替联动类型
自定义表单的字段的类型都使用单行文本,设置完之后前台查看,并浏览器查看它的源文件。
例如:
<form action="/plus/diy.php" enctype="multipart/form-data" method="post">
<input type="hidden" name="action" value="post" />
<input type="hidden" name="diyid" value="1" />
<input type="hidden" name="do" value="2" />
<table cellpadding="0" cellspacing="1">
<tr>
<td align="right" valign="top">省份:</td>
<td><input type='text' name='province' id='province' value='' />
</td>
</tr>
<tr>
<td align="right" valign="top">地级市:</td>
<td><input type='text' name='city' id='city' value='' />
</td>
</tr>
<tr>
<td align="right" valign="top">市、县级市:</td>
<td><input type='text' name='country' id='country' value='' />
</td>
</tr>
<input type="hidden" name="dede_fields" value="province,text;city,text;country,text" />
<input type="hidden" name="dede_fieldshash" value="652e45ca2c11e03bbe75d9f5ab1726ba" /></table>
<div align='center'>
<input type="submit" name="submit" value="提 交" />
<input type="reset" name="reset" value="重 置" />
</div>
</form>
修改它的form表单,改成自己所需要的样式,并将province,city,country都改成select的类型,三级级联使用js完成
如:
<form action="/plus/diy.php" enctype="multipart/form-data" method="post">
<input type="hidden" name="action" value="post" />
<input type="hidden" name="diyid" value="1" />
<input type="hidden" name="do" value="2" />
<select id="s_province" name="province"><option value="省份">省份</option></select>
<select id="s_city" name="city"><option value="地级市">地级市</option></select>
<select id="s_county" name="country"><option value="市、县级市">市、县级市</option></select>
<script type="text/javascript" src="js/area.js"></script>
<script type="text/javascript">_init_area();</script>
<input type="hidden" name="dede_fields" value="province,text;city,text;country,text" />
<input type="hidden" name="dede_fieldshash" value="652e45ca2c11e03bbe75d9f5ab1726ba" /></table>
<div align='center'>
<input type="submit" name="submit" value="提 交" />
<input type="reset" name="reset" value="重 置" />
</div>
</form>