Heim > Artikel > Backend-Entwicklung > PHP-Beispiel-PHP + Ajax-Initiierungsprozess und Überprüfungsprozess (Abschied nehmen als Beispiel)
In diesem Artikel wird hauptsächlich der PHP + Ajax-Initiierungsprozess und der Überprüfungsprozess vorgestellt (Freunde, die ihn benötigen, können sich darauf beziehen).
Wie man einen neuen Prozess erstellt, wurde bereits erwähnt Aufsatz, also jetzt Schauen wir uns an, wie man einen Prozess initiiert und den Prozess überprüft~~~
Lassen Sie uns zuerst über die Idee sprechen:
(1) Melden Sie sich mit der Sitzung an. Erhalten Sie die Benutzer-ID
(2) Der Benutzer initiiert einen Prozess
Hinweis: Sie müssen den Anwendungsgrund angeben
(3) Der Prüfer am Knoten überprüft es nacheinander
Hinweis: Jede Überprüfung wird genehmigt. Wenn die Überprüfung abgeschlossen ist, muss das entsprechende ISOK-Feld auf 1 (hier 1) geändert werden bedeutet das Ende, 0 zeigt an, dass es noch nicht vorbei ist)
Alle zum Teilen verfügbar Drei Tabellen:
Schritt 1: Erstellen Sie zunächst eine einfache Anmeldeseite und Verwenden Sie die Sitzung, um den Benutzernamen abzurufen:
denglu.php-Seite
<!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>
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='{$uid}'"; $mm = $db->strquery($sql); if($pwd==$mm && !empty($pwd)) { $_SESSION["uid"]=$uid; header("location:liucheng.php"); } else { echo "密码或登录名输入错误"; } ?>
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='shenhe.php'>审核流程</a> </p> </p> </body> </html>
Rendern:
Schritt 3: Initiieren Sie die Prozessseite faqi.php
(1) Zeigen Sie zunächst alle Prozesse in einer Dropdown-Liste an
(2) Der Grund für das Initiieren des Prozesses muss angegeben werden vom angemeldeten Benutzer ausgefüllt
<!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='{$v[0]}'>{$v[1]}</option>"; } ?> </select><br /> 发起流程事由: <textarea class="nr"> </textarea><br /> <input type="button" value="确定发起" /> </form> </p> </body> </html>
Vierter Schritt: Schreiben Sie die Verarbeitungsseite fq-cl.ph des Initiierungsprozesses
<?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 ('','{$code}','{$uid}','{$nr}',0,'{$time}',0)"; $db->query($sql,0); header("location:liucheng.php"); ?>
Klicken Sie auf „Initiierung bestätigen“, 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 (die Bedingungen in der Unterabfrage werden verwendet Etwas, bei dem die übergeordnete Abfrage „Bestanden“ wird zu „Prüfung bestanden“;
<!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='{$uid}') and towhere >=(select orders from liuchengjiedian b where b.code = a.code and b.uids = '{$uid}')"; $arr = $db->query($sql); //var_dump($arr); echo "<table border='1' width='100%' cellpadding='0' cellspacing='0'> <tr> <td>流程代号</td> <td>发起者</td> <td>发起内容</td> <td>发起时间</td> <td>是否结束</td> <td>操作</td> </tr>"; foreach($arr as $v){ //操作最后一列 //设置默认项 $zt = "<a href='tongguo-cl.php?code={$v[0]}'>审核未通过</a>"; $sql = "select orders from liuchengjiedian where code ='{$v[1]}' and uids ='{$uid}'"; $wz = $db->strquery($sql); if($v[6]>$wz) { $zt = "<span style='color:green'>审核已通过</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>
<?php $ids = $_GET["code"]; require "../DB.class.php"; $db = new DB(); //点击审核后,towhere列加1,目的是使流程向下走 $sql = "update liuchengpath set towhere = towhere+1 where ids ='{$ids}' "; $db->query($sql,0); //当流程走到最后一个审核的人时,流程要结束 //获取该流程最大的orders $sql =" select max(orders) from liuchengjiedian where code = (select code from liuchengpath where ids ='{$ids}')"; $maxorders = $db->strquery($sql); //获取该用户处于哪个位置,也就是towhere等于多少 $sql ="select towhere from liuchengpath where ids ='{$ids}'"; $towhere = $db->strquery($sql); //判断是否已到达最后一个审核的人 if($towhere>$maxorders) { $sql = "update liuchengpath set isok=1 where ids='{$ids}'"; // var_dump($sql); $db->query($sql,0); } header("location:shenhe.php"); ?>Lassen Sie uns die Wirkung von Anfang an überprüfen: Erstens: Starten Sie einen neuen Urlaubsprozess:
Zweitens: Zhangsan ist die erste Person zur Überprüfung
Klicken Sie auf „Nachdem die Überprüfung fehlgeschlagen ist“,
Abschließend: zhaoliu ist der letzte Prüfer
Nachdem Sie auf „Audit fehlgeschlagen“ geklickt haben, ändert sich der Vorgang auf „1“. Prüfung bestanden"~~~
Das Obige Das Folgende ist der vom Herausgeber eingeführte PHP + Ajax-Initiierungsprozess und Überprüfungsprozess (Abschied nehmen als Beispiel). Ich hoffe es Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten!Das obige ist der detaillierte Inhalt vonPHP-Beispiel-PHP + Ajax-Initiierungsprozess und Überprüfungsprozess (Abschied nehmen als Beispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!