phpcms2008的表单向导功能很强大,可以实现用户的留言功能以及问答功能都是可以的.针对这部分需求,我把我的经验总结写出来,分享给有需要的朋友.

 

步骤1  -------------请用IE浏览器(基于IE内核的也可以)打开

两套模板----提问模板,回答模板,完整点的话还有个问答首页模板用来展示问题的.

提问模板 对应建立提问表单(这里的字段信息会在data/formguide/目录里面有你建立的表单文件1.html)

如建立自定义表名yhwd  (phpcms_form_yhwd)并设立字段

 字段名 字段别名 字段类型 

 name 姓名 单行文本  

 tel 电话 单行文本  

 title 问题 单行文本 

 type 问题分类 选项

 intro 详细说明 多行文本

模板里面主要代码:

 
  
  1. <form action="/formguide/index.php" method="post" enctype="multipart/form-data"> 
  2. 姓名<input type="text" name="info[name]" id="name"> 
  3. 电话<input type="text" name="info[tel]" id="tel"> 
  4. 问题<input type="text" name="info[title]" id="title"> 
  5. 问题分类 
  6. <select name="info[type]" id="type"  > 
  7. <option value="0" selected>选择分类</option> 
  8. <option value="1" >分类1</option> 
  9. <option value="2" >分类2</option> 
  10. <option value="3" >分类3</option> 
  11. <option value="4" >分类4</option> 
  12. <option value="5" >分od</option> 
  13. <option value="6" >女性不孕</option> 
  14. </select> 
  15. 详细说明<textarea name="info[intro]" id="intro"></textarea> 
  16. <input type="hidden" name="dataid" value="{$dataid}" /> 
  17. <input type="hidden" name="formid" value="{$formid}" /> //{$formid}在这里要指定
  18. <input name="dosubmit" type="submit" class=""  value="提 交"/> 
  19. //这三句一定要加上 并且名字不能改变 value里面必须有值 才能提交  {$formid}就是表单ID 
  20. </form> 

 

之后就是回答页面模板  对应回复表单 一般俩字段就可以了

 questionid   问题ID   (这里最好把患者的问题全部调出来特别是问题ID也就是dataid 以便针对问题回复)

 answer       回复   编辑器

 

调用问题或回复(只是表不同而已)相关代码:

 
  
  1. {get sql="select * from phpcms_form_yhwd order by datetime desc"
  2. {$r[name]}                    提问人 
  3. {$r[title]}                   问题 
  4. {date('Y-m-d',$r[datetime])}  提问时间 
  5. {/get} 

 

步骤2.建立相应栏目 可以(最好)用单网页 原来的模板不用修改

  问答首页  栏目页url规则可以用静态的

  在线提问  ---

  专家答复  栏目页url规则用动态传值 list.php?catid=1&page=2

链接传值页面 <a href="list.php?catid=111&dataid={$r[dataid]}">{$r[title]}</a>

传catid=111 意思是要传页面的栏目ID dataid是那边要接收的,接收用$dataid

 

答复展示模板里用到代码(单独放到一个模板页面展示的):

 
  
  1. {get sql="SELECT * FROM phpcms_form_yhwd WHERE dataid = $dataid"
  2. 问题:{$r[title]} 
  3. {$r[intro]} 
  4. 提问者:{$r[name]} 
  5. {/get} 
  6. //顺便也可以调出回复出来(因为当前页面有接收$dataid) 
  7. {get sql="select * from phpcms_form_reply where questionid = $dataid" row="1"
  8. {$r[answer]} 
  9. {/get} 

 

步骤3(可选可不选)

加个针对问题ID回复问题的简单修改  修改的地方是表单模板form_index.html

在这里可以直接写get标签调出问题表的内容与回复表的内容,下面是我写的代码 你也可以自己排列样式,但变量是一样的用

 
  
  1. <table cellpadding="0" cellspacing="1" class="table_form"> 
  2.     <caption>一问一答</caption> 
  3. {get sql="select * from phpcms_form_hzwd"
  4.     <tr> 
  5.         <td><strong>问题{$r[dataid]}</strong></td> 
  6.         <td><strong>{$r[content]}</strong></td> 
  7.         <td><strong><a href='/phpcms/formguide/index.php?formid=2'>回复</a></strong></td> 
  8.         <td><strong><a href='/phpcms/formguide/index.php?formid=1'>提问</a></strong></td> 
  9.     </tr> 
  10.     {get sql="select * from phpcms_form_reply where dataid=$r[dataid]" } 
  11.     <tr> 
  12.         <td><strong>回复{$r[dataid]}</strong></td> 
  13.         <td><strong>{$r[answer]}</strong></td> 
  14.         <td colspan="2"><strong><a href=''>修改回复</a></strong></td> //修改回复功能,涉及到改数据库,这个到后面我再补上,思路已经想出来了. 
  15.     </tr> 
  16.     {/get} 
  17. {/get} 
  18. </table> 

 

 

要注意的是 用表单向导系统生成的调用也不是不可以,但有个BUG

在任意页面调用这句话时 {cache_read('14.html', CACHE_FORM)}

用这个输出     <?php cache_read('14.html', CACHE_FORM)?>

生成一次之后 如果想再修改模板 这个重新生成可能就不会变了,还是你第一次生成的那样.