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}>&nbsp;<{$v.tmmc}></div>

             <{foreach $v.xuanxiang as $v1}>
                 <div><{$v1[1]}>:<{$v1[0]}></div>
             <{/foreach}><br />

    <{/foreach}>

</div>
</body>
</html>

时间: 2024-10-17 05:34:58

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

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

在打印Excel表格时常常会出现如果存在多页打印时,往往从第二页开始就会出现没有表头的情况,导致到后面都不清楚对应的是哪个数据,查看时也很麻烦,下面就将为大家介绍如何在Excel表格里设置每页打印时都有表头 1. 首先打开所要修改的Excel表格 2. 我们首先来看看第一页与第二页的区别 3. 打开菜单栏里面的"页面布局"选项卡 4. 点击页面设置板块中的"打印标题" 5. 在打印标题内有顶端标题行与左端标题行,选中顶端标题行,点击右边的小箭头 6. 点击小箭头后会

6月5 Smarty自定义函数

自定义函数:<{方法名称}> 在html页面是可以直接赋值的:(没啥作用只是知道即可) <{$a = "hello"}><div><{$a}></div> 显示效果:hello 1.<{literal}><{/literal}>内置函数 {literal}标签区域内的数据将按字面意思处理,代表性地是用在javascript/css语块周围,不然这些语言使用的花括号‘{’.‘}’会干扰模版定界符语法.{l

6月3 Smarty基础读取配置

Smarty百科 Smarty是一个php模板引擎.更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法.可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下 ,他们不可能是同一个人.例如,你正在创建一个用于浏览新闻的网页,新闻标题,标签栏,作者和内容等都是内容要素,他们并不包含应该怎样去呈现.在Smarty的程序里,这些被忽略了.模板设计者们编辑模板,组合使用html标签和模板标签去格式化这些要素的输出(html表格,背景色,字体大小,样式表,等等).有一天程序员想要改

老男孩教育每日一题-2017年4月10日-find命令题目

查找出/tmp目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件

NPOI导出EXCEL 打印设置分页及打印标题

在用NPOI导出EXCEL的时候设置分页,在网上有查到用sheet1.SetRowBreak(i)方法,但一直都没有起到作用.经过研究是要设置  sheet1.FitToPage = false; 而这个属性默认是true的,怪不得一直设置都不起作用. 设置打印标题用 hssfworkbook.SetRepeatingRowsAndColumns(0, 0, 5, 0, 5); 但最新版本已经有新的方法了. Sheet sheet1 = hssfworkbook.CreateSheet("She

使用Js脚本,修改控制IE的注册表相关设置,修改打印时默认页面设置

抄一篇: 这是一篇从网络上抄来的文章.主要内容涉及到使用js修改ie的注册表设置. 可以用来达到不需要通过用户,而是通过代码的方式来修改页面设置(等同ie菜单:File\Page Setup). 这不是唯一的办法.其他还可以通过第三方插件的方式修改.可以上网用关键词“webbrowser”, 脚本写法: <SCRIPT LANGUAGE="JavaScript"><!--var WshShell=new ActiveXObject("WScript.Shel

云展网教程 | 设置工具栏的打印功能

上传到云展网的翻页电子书是可以打印的.您可以通过相应的设置选择隐藏和显示打印按钮,也可以设置运行打印页面以及添加打印浮水印档. 打印按钮:选择"是"会显示打印按钮,阅读用户可以打印该文件 打印浮水印档:仅支持图片浮水印或者SWF浮水印(打印之后才会有浮水印效果) 控制打印页面:设置允许您定义打印页面面板上的范围.您可以决定哪些页面可以打印或不能打印.例如,如果你输入"1",那么第一页不能被打印出来,如果你输入"1-10",然后页面1-10(10页

题目:打印出如下图案(菱形)

×× ×××××× ×××××××××× ×××××× ×× class HomeWork0604{public static void main (String[] args){int i,j,k;for(i=0;i<=3;i++) //控制前三行 { for(j=0;j<(2*(3-i));j++) //控制前三行空格System.out.print(" ");for(k=0;k<(4*i-2);k++) //控制前三行* System.out.print(&qu

题目9 打印日期

1 import java.util.Scanner; 2 3 public class Main{ 4 private static int isLeap(int year){ 5 if(year%4==0&&year%100!=0||year%400==0) return 1; 6 else return 0; 7 } 8 private static int[][] dayOfMonth={ 9 {0,0}, 10 {31,31}, 11 {28,29}, 12 {31,31}, 1