6月6 Smarty练习----设置题目及打印试卷
所需要的数据库表格:shiti, shititimu, timu, kemu, xuanxiang

考试试题的设置:
考试试题后台:ksset.php
<?php
include("../init.inc.php"); include("../DBDA.php");
$db = new DBDA(); $skm = "select * from kemu";
$akm = $db->Query($skm); $smarty->assign("kemu",$akm);
$smarty->display("ksset06.html");
考试试题处理页面:kssetchuli.php
<?php include("../DBDA.php");
$db = new DBDA(); $code = $_POST["code"];
$name = $_POST["name"];
$kemu = $_POST["kemu"];
$shijian = $_POST["shijian"];
$shuliang = $_POST["shuliang"];
$fenzhi = $_POST["fenzhi"]; $sql = "insert into shiti values('{$code}','{$shijian}','{$kemu}','{$name}','{$shuliang}','{$fenzhi}')";
$db->Query($sql,1); $sall = "select code from timu where kemu ='{$kemu}'";
$aall = $db->Query($sall); var_dump($aall); $shuzu = array();//生成的试题代号 for($i=0;$i<$shuliang;$i++)
{
$n = rand(0,count($aall)-1);//0-数组长度的随机数(索引从0开始的)
$daihao = $aall[$n][0]; if(in_array($daihao,$shuzu))
{
$i--;
}
else
{
array_push($shuzu,$daihao);
}
}
foreach($shuzu as $k=>$v)
{
$shunxu = $k+1;
$sttm = "insert into shititimu values('','{$code}','{$v}','{$shunxu}')";
$db->Query($sttm,1);
}
header("location:ksset.php");
考试试题前端显示:ksset06.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>考试信息</title>
<script src="../../jquery-1.11.2.min.js"></script>
</head> <body>
<!--<a href="#" onclick="return confirm('确定要删除吗')">删除</a>-->
<h1>设置考试信息</h1>
<form action="kssetchuli.php" method="post">
<div>请输入考试编号:<input type="text" name="code" /></div></br> <div>请输入考试名称:<input type="text" name="name" /></div></br> <div>请选择考试科目:
<select name="kemu" id="kemu">
<{foreach $kemu as $v}>
<option value="<{$v[0]}>"><{$v[1]}></option>
<{/foreach}>
</select>
</div></br> <div>请输入考试时间:<input type="text" name="shijian" />分钟</div></br> <div>请输入题目数量:<input type="text" name="shuliang" id="sl" /></div></br> <div>请输入题目分值:<input type="text" name="fenzhi" /></div></br> <input type="submit" value="提交" id="tj" onclick="Check()" />
</form>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
$("#tj").click(function(){
var km = $("#kemu").val();
var sl = $("#sl").val();
var bs = ""; $.ajax({
url:"panduansl.php",
async:false,
data:{km:km,sl:sl},
type:"POST",
dataType:"TEXT",
success: function(data){
bs = data;
}
}); if(bs.trim()=="OK")
{
return true;
}
else
{
alert("该科目下的题目数量不足");
return false;
} }) }); </script>
前端的显示数据包含需要判断的输入该科目下的试题数量的比较:panduansl.php(使用ajax)
<?php include("../DBDA.php");
$db = new DBDA(); $km = $_POST["km"];
$sl = $_POST["sl"]; $sall = "select count(*) from timu where kemu ='{$km}'";
$aall = $db->StrQuery($sall); if($aall>=$sl)//表中的与写进去的比较
{
echo "OK";
}
else
{
echo "NO";
}
形成试卷的相关页面:
形成的试卷后台页面:kstimu.php
<?php
include("../init.inc.php"); include("../DBDA.php");
$db = new DBDA(); $sst = "select * from shiti";
$ast = $db->Query($sst); $shzu = array();//题目信息 if(empty($_POST["ksmc"]))
{ }
else
{
$code = $_POST["ksmc"];//根据他去查shititimu
$stm = "select * from shititimu where shiti='{$code}'";
$atm = $db->Query($stm);
//var_dump($atm);
foreach($atm as $v)
{
$tmdh = $v[2];//代号
$tmsx = $v[3];//顺序 $sname = "select name from timu where code='{$tmdh}'";
$tmmc = $db->StrQuery($sname);
//echo $tmmc; $sxx = "select name,xuanxiang from xuanxiang where timu ='{$tmdh}'";
$axx = $db->Query($sxx);//选项
//var_dump($axx); $tmxx = array("tmsx"=>$tmsx,"tmmc"=>$tmmc,"xuanxiang"=>$axx);
$shzu[] = $tmxx;//往数组添加数据
//var_dump($shzu);
} } $smarty->assign("tm",$shzu);
$smarty->assign("st",$ast);
$smarty->display("kstimu06.html");
形成的试卷前端显示:kstimu06.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<form action="kstimu.php" method="post">
<h1>试题详情</h1>
<div>请选择考试名称:
<select name="ksmc">
<{foreach $st as $v}>
<option value="<{$v[0]}>"><{$v[3]}></option>
<{/foreach}>
</select> <input type="submit" value="查询" />
</div>
</form>
<br />
<div>
<{foreach $tm as $v}>
<div style="font-size:18px; font-weight:bold; color:#906"><{$v.tmsx}> <{$v.tmmc}></div> <{foreach $v.xuanxiang as $v1}>
<div><{$v1[1]}>:<{$v1[0]}></div>
<{/foreach}><br /> <{/foreach}> </div>
</body>
</html>
6月6 Smarty练习----设置题目及打印试卷的更多相关文章
- smarty练习: 设置试题及打印试卷
数据库表格:shiti, shititimu, timu, kemu, xuanxiang 根据科目设置一个可以添加试题的页面:(如下图) 具体的题目从数据库中查出并形成一张试卷的形式 考试试题设置: ...
- 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花 数 ",因为153=1的三次方+5的三次方+3的三次方。
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花 数 ", ...
- Excel2010表格里设置每页打印时都有表头
在打印Excel表格时常常会出现如果存在多页打印时,往往从第二页开始就会出现没有表头的情况,导致到后面都不清楚对应的是哪个数据,查看时也很麻烦,下面就将为大家介绍如何在Excel表格里设置每页打印时都 ...
- Logback设置SQL参数打印
一.hibernate中设置SQL参数打印: (主要是第一句) <logger name="org.hibernate.type.descriptor.sql.BasicBinder& ...
- 6月5 Smarty自定义函数
自定义函数:<{方法名称}> 在html页面是可以直接赋值的:(没啥作用只是知道即可) <{$a = "hello"}><div><{$a ...
- 关于datepicker只显示年、月、日的设置
关键时侯,还得看官方文档.花了半个多小时,找了网上一大堆答复,然后一一验证,90%没有能解决问题. 先给出官方文档的URL: http://bootstrap-datepicker.readthedo ...
- 6月4 Smarty练习增删改
练习Smarty的增删改所需要用到的数据库名称:timu,xuanxiang,kemu,nandu,leixing,然后使用smarty模板将前端后后台分割开来: 主页后台页面:zhupm.php & ...
- 6月3 Smarty基础读取配置
Smarty百科 Smarty是一个php模板引擎.更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同 ...
- 6月5 Smarty变量调节器
变量调节器:<{$a|变量调节器}> 主要修改此页面的信息来了解变量调节器:test0605/main.php和模板文件:main0605.html 1.利用给定的变量调节器 capita ...
随机推荐
- 操作系统04_IO管理
输入输出系统 IO系统的层次结构 用户层IO软件 设备独立性软件 设备驱动程序 中断处理程序 对IO设备的控制方式 使用轮询的可编程IO方式 cpu不停地检查设备的状态,以字节为单位,非中断方式,利用 ...
- 用dbms_scheduler创建job
以前一般使用dbms_job来创建job,oracle10g以后推荐使用dbms_scheduler来创建定时任务,dbms_scheduler功能更为强大.一个创建job的例子: begin sys ...
- 题解——CF Manthan, Codefest 18 (rated, Div. 1 + Div. 2) T4(模拟)
随便模拟下就过了qwq 然后忘了特判WA了QwQ #include <cstdio> #include <algorithm> #include <cstring> ...
- 用Proxy进行预处理
如果你学过我的Vue的课程,一定会知道钩子函数,那如果你刚接触我的博客,并没有学习Vue,那我这里给你简单解释一下什么是钩子函数.当我们在操作一个对象或者方法时会有几种动作,比如:在运行函数前初始化一 ...
- keySet,entrySet用法 以及遍历map的用法
Set<K> keySet() //返回值是个只存放key值的Set集合(集合中无序存放的)Set<Map.Entry<K,V>> entrySet() //返回映 ...
- Go 定长的数组
1.Go 语言数组的简介 几乎所有的计算机语言都有数组,应用非常的广泛.同样,在 Go 语言中也有数组并且在数组的基础上还衍生出了切片(slice). 数组是一系列同一类型数据的集合,数组中包含的每个 ...
- UnicodeEncodeError: 'gbk' codec can't encode character '\u25aa' in position 15: illegal multibyte sequence
UnicodeEncodeError: 'gbk' codec can't encode character '\u25aa' in position 15: illegal multibyte se ...
- hadoop中 bin/hadoop fs -ls ls: `.': No such file or directory问题
2.x版本上的使用bin/hadoop fs -ls /就有用 应该使用绝对路径就不会有问题 mkdir也是一样的 原因:-ls默认目录是在hdfs文件系统的/user/用户名(用户名就命令行@符号 ...
- eclipse中svn项目重定向地址
有这种需求,一般是把项目提交到IP地址已经跟换的服务器,无法连接服务器再提交项目,比较着急. 我们看看怎么办: ② ③
- Django使用admin管理后台管理数据库表
1.在admin.py文件中注册需要创建的表,例: from .models import * # Register your models here. admin.site.register(Use ...