威宁热线

威宁团菜到家

[教程分享] 怎么做Discuz!论坛网站调查页面(表单提交数据库)

[复制链接]
威宁热线 发表于 2021-1-28 01:48:19 | 显示全部楼层 |阅读模式
对于我们运营网站时,往往想了解自己网站的用户是通过哪些方式进入我们的网站的,方便网站的调整。这时做一个调查问卷页面再合适不过了。当然您也可以把这个应用到更多调查问卷里,充分发挥您的想象。
下面学做网站论坛介绍一下DISCUZ论坛网站怎么添加一个调查问卷页面的方法。效果如下图:

怎么做论坛网站调查页面(表单提交数据库)

怎么做论坛网站调查页面(表单提交数据库)

做调查问卷页面页面总共有三大步:用户提交表单、表单数据写入数据库、汇集数据库表单数据。

第一步:用户数据提交表单的制作。
制作提交表单很简单,就是使用HTML教程里讲的FORM标签来制作。代码如下:
  1. <div class="vipxybd"><form method="post" action="sjjs.php">
  2. <table width="600" height="369" class="sctb">

  3. <tr>
  4.     <td height="45" align="center" style="font-weight:400;font-size:16px;">客服小调查:VIP学员<span style="color:#F00;"> {$_G[member][username]} </span>您好</td>
  5.   </tr>
  6.   <tr>
  7.     <td height="45" align="center" style="font-weight:400;font-size:16px">请问您是通过什么途径来到威宁热线的?</td>
  8.   </tr>
  9.   <tr>   
  10.     <td width="580" height="217" align="center">
  11.       <p class="xzk">
  12.       <span><input type="radio" name="searchlx" value="百度">百度</span>
  13.       <span><input type="radio" name="searchlx" value="360搜索">360搜索</span>
  14.       <span><input type="radio" name="searchlx" value="搜狗">搜狗</span>
  15.       <span><input type="radio" name="searchlx" value="谷歌">谷歌</span>
  16.       <span><input type="radio" name="searchlx" value="其它">其它搜索</span>
  17.       <span><input type="radio" name="searchlx" value="网站链接">其它网站链接</span>
  18.       </p>
  19.       <p style="margin-top:20px;">
  20.     <textarea name="sousuci" id="sousuci" placeholder="这里填写您搜索的关键词或者其它网站网址,并注明是手机还是PC。例如:手机百度搜索“怎么做网站”……"></textarea></p></td>
  21.   </tr>
  22.   <tr>
  23.     <td height="50" align="center">
  24.     <input name="uid" type="hidden" value="{$_G[member][uid]}">
  25.       <input type="submit" name="button" id="button" value="提交" style="width:200px !important;">
  26. </td>
  27.   </tr>
  28. </table>
  29. </form></div>
复制代码
上面的代码就是一个用户提交表单,可以自己加一些CSS样式代码来控制一个样式。将表单代码放到DISCUZ论坛模板文件代码里,或者作为一个独立的提交页面都可以。
这个表单的数据的提交处理地址是:sjjs.php,所以下一步要制作一个sjjs.php文件;

第二步:制作表单数据处理页面sjjs.php;
这个页面的功能是先接收表单传过来的数据,然后再写入数据库里。代码如下:
  1. <?php
  2. //先连接数据库
  3. //代码来源:威宁热线https://www.uw7.cn/
  4. $sousuleixing=$_POST["searchlx"];
  5. $sousuci=$_POST["sousuci"];
  6. $nowtimes=date('Y-m-d H:i:s',time());
  7. define("DB_HOST","localhost");
  8. define("DB_USER","数据库用户名");
  9. define("DB_PWD","数据库密码");
  10. define("DB_NAME","数据库名");
  11. $conn = @mysql_connect(DB_HOST,DB_USER,DB_PWD) or die("连接服务器出错:".mysql_error());
  12. @mysql_select_db(DB_NAME) or die("连接数据库出错:".mysql_error());
  13. @mysql_query('SET NAMES GB2312');

  14. $sql = "UPDATE pre_common_member SET sousuleixing='".$sousuleixing."',sousuci='".$sousuci."',nowtimes='".$nowtimes."' WHERE uid='".$uid."'";

  15. mysql_query($sql,$conn);//执行SQL

  16. $r=mysql_query($sql,$conn);
  17. if($r){
  18.    echo "<script charset='GB2312'>alert('Ok, thanks!');location.replace(document.referrer);</script>";
  19. }else{
  20.   echo "<script charset='GB2312'>alert('Error!');location.replace(document.referrer);</script>";
  21. }


  22. mysql_close($conn);
  23. ?>
复制代码
通过上面的PHP页面代码,可以将表单提交过来的数据写入DISCUZ论坛数据会的会员数据表pre_common_member里。(注意,写入之前需要在数据表里创建二个列,分别是sousuleixing和sousuci)

在这一步里,方便后面数据排序,需要使用PHP获取当前日期。

第三步:制作一个页面来显示用户提交的数据。
就是读取数据库的过程。新建一个页面,取名为:cha.php,将以下的代码粘贴到cha.php。
  1. <?php
  2. $uid=$_POST["uid"];
  3. $sousuleixing=$_POST["searchlx"];
  4. $sousuci=$_POST["sousuci"];
  5. define("DB_HOST","localhost");
  6. define("DB_USER","数据库用户名");
  7. define("DB_PWD","数据库密码");
  8. define("DB_NAME","数据库名");
  9. $conn = @mysql_connect(DB_HOST,DB_USER,DB_PWD) or die("连接服务器出错:".mysql_error());
  10. @mysql_select_db(DB_NAME) or die("连接数据库出错:".mysql_error());
  11. @mysql_query('SET NAMES utf8');

  12. $sql = "UPDATE pre_common_member SET sousuleixing='".$sousuleixing."',sousuci='".$sousuci."' WHERE uid='".$uid."'";

  13. echo '<div class="hyshuju">
  14.        <h2>反馈信息</h2>
  15.        <ul>
  16.        <div class="xxtitle">
  17.        <li class="clearfix">
  18.        <span class="bianhao1">编号</span>
  19.        <span class="bianhao2">会员名</span>
  20.        <span class="bianhao3">会员ID</span>
  21.        <span>注册时间</span>
  22.        <span class="bianhao4">搜索类型</span>
  23.        <span>搜索词</span>
  24.        <span>反馈时间</span>
  25.        </li></div>';
  26. $result = mysql_query("select * from pre_common_member where sousuleixing <> '' ORDER BY nowtimes DESC limit 0,100");//获取最新100条数
  27.     $i=1;
  28.    while($row = mysql_fetch_array($result))//转成数组,且返回第一条数据,当不是一个对象时候退出
  29.         {
  30.         echo '
  31.         <li class="clearfix">
  32.         <span class="bianhao1">'.$i++.'</span>
  33.        <span class="bianhao2">'.$row['username'].'</span>
  34.        <span class="bianhao3">'.$row['uid'].'</span>
  35.        <span>'.date("Y-m-d H:i:s", $row['regdate']).'</span>
  36.        <span class="bianhao4">'.$row['sousuleixing'].'</span>
  37.        <span>'.$row['sousuci'].'</span>
  38.         <span>'.$row['nowtimes'].'</span>
  39.        </li>';
  40.     }
  41. echo '</ul>
  42.        </div>';

  43. mysql_close($conn);
  44. ?>
复制代码
将这个页面上传到自己空间的根目录下,就可以查看最新100名用户反馈的信息了。

评分

参与人数 1热心 +1 收起 理由
wn0857 + 1 神马都是浮云

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表