So implementieren Sie den Initiierungsprozess und den Überprüfungsprozess mit PHP+Ajax

墨辰丷
Freigeben: 2023-03-27 09:36:01
Original
1881 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich der PHP + Ajax-Initiierungsprozess und der Überprüfungsprozess vorgestellt (Freunde in Not können sich darauf beziehen)

Lassen Sie mich zuerst über die Idee sprechen:

(1) Melden Sie sich an und verwenden Sie die Sitzung, um die Benutzer-ID zu erhalten

(2) Der Benutzer initiiert einen Prozess

Hinweis: Sie müssen die schreiben Anwendungsgrund

(3 ) Der Prüfer am Knoten überprüft

in der Reihenfolge Hinweis: Für jede bestandene Überprüfung sollte das entsprechende towhere-Feld um 1 erhöht werden; , das entsprechende Isok-Feld sollte sich auf 1 ändern (1 bedeutet hier das Ende, 0 zeigt an, dass es noch nicht vorbei ist)

teilt drei Tabellen:

Schritt 1: Erstellen Sie zunächst eine einfache Anmeldeseite und verwenden Sie die Sitzung, um den Benutzernamen abzurufen:

denglu.php page

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 </head>
 <body>
 <form method="post" action="denglu-cl.php">
  用户名:<input type="text" name="uid" /><br />
  密码:<input type="password" name="pwd" /><br />
  <input type="submit" value="登录" />
 </form>
 </body>
</html>
Nach dem Login kopieren

denglu-cl. PHP-Seite

<?php
session_start();
require "../DB.class.php";
$db = new DB();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"];
$sql = "select pwd from users where uid=&#39;{$uid}&#39;";
$mm = $db->strquery($sql);
if($pwd==$mm && !empty($pwd))
{
 $_SESSION["uid"]=$uid;
 header("location:liucheng.php");
}
else
{
 echo "密码或登录名输入错误";
}
?>
Nach dem Login kopieren

Rendering:

Schritt 2: Erstellen Sie eine einfache Notizseite: liucheng.php

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style>
  #body{
  height: 200px;
  width: 300px;
  background-color: gainsboro;
  margin: 200px auto;
  text-align: center;
  vertical-align: middle;
  line-height: 30px;
  }
 </style>
 </head>
 <body>
 <p id="body">
 <h2>主页面</h2>
 <p>
  <a href="faqi.php" rel="external nofollow" >发起流程</a><br />
  <a href=&#39;shenhe.php&#39;>审核流程</a>
 </p>
 </p>
 </body>
</html>
Nach dem Login kopieren

Rendern:

Schritt 3: Starten Sie die Prozessseite faqi.php

(1) Zuerst alle Prozesse in einer Dropdown-Liste anzeigen

(2) Der Grund für die Initiierung des Prozesses muss vom angemeldeten Benutzer ausgefüllt werden

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
  <style>
  #body{
  height: 250px;
  width: 300px;
  background-color: gainsboro;
  margin: 200px auto;
  text-align: left;
  vertical-align: middle;
  line-height: 30px;
  padding-left: 30px;
  }
 </style>
 </head>
 <body>
 <p id="body">
  <form method="post" action="faqi-cl.php">
  <h2>发起流程页面</h2>
  <select id="lc">
  <?php
   require "../DB.class.php";
   $db = new DB();
   $sql = "select * from liucheng";
   $arr = $db->query($sql);
   foreach($arr as $v)
   {
   echo "<option value=&#39;{$v[0]}&#39;>{$v[1]}</option>"; 
   }   
  ?>
  </select><br />
  发起流程事由:
  <textarea class="nr"> </textarea><br />
  <input type="button" value="确定发起" /> 
  </form>
 </p>
 </body>
</html>
Nach dem Login kopieren

Schritt 4: Schreiben Sie die Verarbeitungsseite für den Initiierungsprozess fq-cl.php

<?php
session_start();
require "../DB.class.php";
$db = new DB();
$code = $_POST["lc"];
$nr =$_POST["nr"];
$uid = $_SESSION["uid"];
$time = date("Y-m-d H:i:s",time());
$sql = "insert into liuchengpath values (&#39;&#39;,&#39;{$code}&#39;,&#39;{$uid}&#39;,&#39;{$nr}&#39;,0,&#39;{$time}&#39;,0)";
$db->query($sql,0);
header("location:liucheng.php");
?>
Nach dem Login kopieren

Klicken Sie auf „Initiierung bestätigen“ und diese Daten werden zur Datenbank hinzugefügt

Schritt 5: Prozessüberprüfungsseite shenhe.php

Verwendete Wissenspunkte: Unterabfrage : irrelevante Unterabfrage (Unterabfrage und übergeordnete Abfrage können unabhängig voneinander ausgeführt werden); verwandte Unterabfrage (Unterabfrage Die Bedingungen in der Abfrage verwenden etwas aus der übergeordneten Abfrage)

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
  <style>
  #body{
  height: 450px;
  width: 800px;
  background-color: gainsboro;
  margin: 200px auto;
  text-align: left;
  vertical-align: middle;
  line-height: 30px;
  padding-left: 30px;
   }
 </style>
 </head>
 <body>
 <p id="body">
  <h2>流程审核页面</h2>
  <?php
  session_start();
  $uid = $_SESSION["uid"];
  require "../DB.class.php";
  $db = new DB();
  //先取该用户参与的所有流程
  //并且取流程步骤到达该用户或已经被改用户审核通过的记录
  $sql="select * from liuchengpath a where code in(select code from liuchengjiedian where uids=&#39;{$uid}&#39;) and towhere >=(select orders from liuchengjiedian b where b.code = a.code and b.uids = &#39;{$uid}&#39;)";
  $arr = $db->query($sql);
  //var_dump($arr);
  echo "<table border=&#39;1&#39; width=&#39;100%&#39; cellpadding=&#39;0&#39; cellspacing=&#39;0&#39;>
    <tr>
    <td>流程代号</td>
    <td>发起者</td>
    <td>发起内容</td>
    <td>发起时间</td>
    <td>是否结束</td>
    <td>操作</td>
    </tr>";
  foreach($arr as $v){
   //操作最后一列
   //设置默认项
   $zt = "<a href=&#39;tongguo-cl.php?code={$v[0]}&#39;>审核未通过</a>";
   $sql = "select orders from liuchengjiedian where code =&#39;{$v[1]}&#39; and uids =&#39;{$uid}&#39;";
   $wz = $db->strquery($sql);
   if($v[6]>$wz)
   {
   $zt = "<span style=&#39;color:green&#39;>审核已通过</span>";
   }
   echo "<tr>
    <td>{$v[1]}</td>
    <td>{$v[2]}</td>
    <td>{$v[3]}</td>
    <td>{$v[4]}</td>
    <td>{$v[5]}</td>
    <td>{$zt}</td>
   </tr>";   
  }
  echo "</table>";  
  ?>
 </p>
 </body>
</html>
Nach dem Login kopieren

Schritt 6: Seite „tongguo-cl.php“ schreiben (wichtig)

<?php
$ids = $_GET["code"];
require "../DB.class.php";
$db = new DB();
//点击审核后,towhere列加1,目的是使流程向下走
$sql = "update liuchengpath set towhere = towhere+1 where ids =&#39;{$ids}&#39; ";
$db->query($sql,0);
//当流程走到最后一个审核的人时,流程要结束
//获取该流程最大的orders
$sql =" select max(orders) from liuchengjiedian where code = (select code from liuchengpath where ids =&#39;{$ids}&#39;)";
$maxorders = $db->strquery($sql);
//获取该用户处于哪个位置,也就是towhere等于多少
$sql ="select towhere from liuchengpath where ids =&#39;{$ids}&#39;";
$towhere = $db->strquery($sql);
//判断是否已到达最后一个审核的人
if($towhere>$maxorders)
{
 $sql = "update liuchengpath set isok=1 where ids=&#39;{$ids}&#39;";
// var_dump($sql);
 $db->query($sql,0);
}
header("location:shenhe.php");
?>
Nach dem Login kopieren

Wenn Sie mit dem Schreiben dieses Schritts fertig sind, klicken Sie auf „Audit fehlgeschlagen“ und es wird zu „Audit“ geändert bestanden“;

Lassen Sie uns die Wirkung von Anfang an überprüfen:

Erstens: Starten Sie einen neuen Urlaubsprozess:

Zweitens: Zhangsan ist der Erste. Die Person, die eine Bewertung abgeben möchte

Klicken Sie auf „Nachdem die Überprüfung fehlgeschlagen ist.“ ",

Endlich: zhaoliu ist der letzte Rezensent

Nach dem Klicken „Audit fehlgeschlagen“, ob das Ende auf 1 geändert wird; der Vorgang wird grün „Audit bestanden“~~~

Verwandte Empfehlungen:

continue-Anweisung für die PHP-Prozesssteuerung

break-Anweisung in der PHP-Flusssteuerung

Was ist foreach in PHP-Flusskontrolle

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Initiierungsprozess und den Überprüfungsprozess mit PHP+Ajax. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!