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 ...
随机推荐
- (转) How a Kalman filter works, in pictures
How a Kalman filter works, in pictures I have to tell you about the Kalman filter, because what it d ...
- Vue.extend提供自定义组件的构造器
Vue.extend 返回的是一个“扩展实例构造器”,也就是预设了部分选项的Vue实例构造器.经常服务于Vue.component用来生成组件,可以简单理解为当在模板中遇到该组件名称作为标签的自定义元 ...
- 常用Iview样式布局
type 布局模式,可选值为flex流式布局或不选,在现代浏览器下有效 flex 布局下的垂直对齐方式,align可选值为top.middle.bottom flex 布局下的水平排列方式,justi ...
- Tag Helpers in forms in ASP.NET Core
Tag Helpers in ASP.NET Core Tag Helpers in forms in ASP.NET Core HTML Form element ASP.NET Core buil ...
- Python数据类型补充1
一.可变和不可变类型 可变类型: 值变了,但是id没有变,证明没有生成新的值而是在改变原值,原值是可变类型 不可变类型:值变了,id也跟着变,证明是生成了新的值而不是在改变原值,原值是不可变 # x= ...
- MVC ---- 怎删改查
using Modelsop; using System; using System.Collections.Generic; using System.Linq; using System.Web; ...
- 【Ruby】【YAML】
require "YAML" var = YAML.load(File.open('b.yml')) #哈希puts var.class #Hashprint var ," ...
- Qt5标准文件对话框类
getOpenFileName()函数返回用户选择的文件名,其函数形式如下: QString QFileDialog::getOpenFileName(QWidget *parent = Q_NULL ...
- Linux性能测试-FIO测试
Fdisk –l 查看磁盘分区情况. df –h 磁盘挂载情况 wget http://brick.kernel.dk/snaps/fio-2.2.5.tar.gz yum install liba ...
- MYSQL常用函数(系统信息函数)
DATABASE() 返回当前数据库名 BENCHMARK(count,expr) 将表达式expr重复运行count次 CONNECTION_ID() 返回当前客户的连接ID FOUND_ ...