所需要的数据库表格: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}>&nbsp;<{$v.tmmc}></div> <{foreach $v.xuanxiang as $v1}>
<div><{$v1[1]}>:<{$v1[0]}></div>
<{/foreach}><br /> <{/foreach}> </div>
</body>
</html>

6月6 Smarty练习----设置题目及打印试卷的更多相关文章

  1. smarty练习: 设置试题及打印试卷

    数据库表格:shiti, shititimu, timu, kemu, xuanxiang 根据科目设置一个可以添加试题的页面:(如下图) 具体的题目从数据库中查出并形成一张试卷的形式 考试试题设置: ...

  2. 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花 数 ",因为153=1的三次方+5的三次方+3的三次方。

    题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花 数 ", ...

  3. Excel2010表格里设置每页打印时都有表头

    在打印Excel表格时常常会出现如果存在多页打印时,往往从第二页开始就会出现没有表头的情况,导致到后面都不清楚对应的是哪个数据,查看时也很麻烦,下面就将为大家介绍如何在Excel表格里设置每页打印时都 ...

  4. Logback设置SQL参数打印

    一.hibernate中设置SQL参数打印: (主要是第一句) <logger name="org.hibernate.type.descriptor.sql.BasicBinder& ...

  5. 6月5 Smarty自定义函数

    自定义函数:<{方法名称}> 在html页面是可以直接赋值的:(没啥作用只是知道即可) <{$a = "hello"}><div><{$a ...

  6. 关于datepicker只显示年、月、日的设置

    关键时侯,还得看官方文档.花了半个多小时,找了网上一大堆答复,然后一一验证,90%没有能解决问题. 先给出官方文档的URL: http://bootstrap-datepicker.readthedo ...

  7. 6月4 Smarty练习增删改

    练习Smarty的增删改所需要用到的数据库名称:timu,xuanxiang,kemu,nandu,leixing,然后使用smarty模板将前端后后台分割开来: 主页后台页面:zhupm.php & ...

  8. 6月3 Smarty基础读取配置

    Smarty百科 Smarty是一个php模板引擎.更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同 ...

  9. 6月5 Smarty变量调节器

    变量调节器:<{$a|变量调节器}> 主要修改此页面的信息来了解变量调节器:test0605/main.php和模板文件:main0605.html 1.利用给定的变量调节器 capita ...

随机推荐

  1. (转) 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 ...

  2. Vue.extend提供自定义组件的构造器

    Vue.extend 返回的是一个“扩展实例构造器”,也就是预设了部分选项的Vue实例构造器.经常服务于Vue.component用来生成组件,可以简单理解为当在模板中遇到该组件名称作为标签的自定义元 ...

  3. 常用Iview样式布局

    type 布局模式,可选值为flex流式布局或不选,在现代浏览器下有效 flex 布局下的垂直对齐方式,align可选值为top.middle.bottom flex 布局下的水平排列方式,justi ...

  4. 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 ...

  5. Python数据类型补充1

    一.可变和不可变类型 可变类型: 值变了,但是id没有变,证明没有生成新的值而是在改变原值,原值是可变类型 不可变类型:值变了,id也跟着变,证明是生成了新的值而不是在改变原值,原值是不可变 # x= ...

  6. MVC ---- 怎删改查

    using Modelsop; using System; using System.Collections.Generic; using System.Linq; using System.Web; ...

  7. 【Ruby】【YAML】

    require "YAML" var = YAML.load(File.open('b.yml')) #哈希puts var.class #Hashprint var ," ...

  8. Qt5标准文件对话框类

    getOpenFileName()函数返回用户选择的文件名,其函数形式如下: QString QFileDialog::getOpenFileName(QWidget *parent = Q_NULL ...

  9. Linux性能测试-FIO测试

    Fdisk –l 查看磁盘分区情况. df –h  磁盘挂载情况 wget http://brick.kernel.dk/snaps/fio-2.2.5.tar.gz yum install liba ...

  10. MYSQL常用函数(系统信息函数)

    DATABASE()   返回当前数据库名 BENCHMARK(count,expr)  将表达式expr重复运行count次 CONNECTION_ID()   返回当前客户的连接ID FOUND_ ...