我的网站上有一个用于插入文档的表单(具有不同的权限-Admin / User-)。
此表单包含一个下拉列表,问题是需要由管理员对其进行编辑才能在该下拉列表中添加更多或更少的项目。
此编辑不应是代码编辑(绝对容易) 但是允许管理员向下拉列表添加元素的表单 我四处搜寻,但没有找到答案,希望您能为此提供帮助!
<?php
require_once("identification.php");
require_once('connexionDB.php');
$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
$pole = isset($_POST['pole']) ? $_POST['pole'] : "";
$valideur = isset($_POST['valideur']) ? $_POST['valideur'] : "";
$perimetre = isset($_POST['perimetre']) ? $_POST['perimetre'] : "";
$direction = isset($_POST['direction']) ? $_POST['direction'] : "";
$activite = isset($_POST['activite']) ? $_POST['activite'] : "";
$version = isset($_POST['version']) ? $_POST['version'] : "";
$type_doc = isset($_POST['type_doc']) ? $_POST['type_doc'] : "";
$description = isset($_POST['description']) ? $_POST['description'] : "";
$zone = isset($_POST['zone']) ? $_POST['zone'] : "";
$langue = isset($_POST['langue']) ? $_POST['langue'] : "";
$date = isset($_POST['date']) ? $_POST['date'] : "";
$comm_sur_modif = isset($_POST['comm_sur_modif']) ? $_POST['comm_sur_modif'] : "";
$commentaire = isset($_POST['commentaire']) ? $_POST['commentaire'] : "";
$auteur = $_SESSION["fati"];
if (isset($_FILES['document']) and !empty($_FILES['document']['name'])) {
$taillemax = 4221225472;
$extensionvalides = ['pdf', 'docx'];
if ($_FILES['document']['size'] <= $taillemax) {
$extensionUpload = strtolower(substr(strrchr($_FILES['document']['name'], '.'), 1));
if (in_array($extensionUpload, $extensionvalides)) {
$chemain = "doc/" . $nom . "." . $extensionUpload;
$resultat = move_uploaded_file($_FILES['document']['tmp_name'], $chemain);
if ($resultat) {
$requete = "insert into document(nom,direction,pole,activite,version,type_doc,description,zone,perimetre,langue,chemin,auteur,date,comm_sur_modif,commentaire) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$params = [
$nom,
$direction,
$pole,
$activite,
$version,
$type_doc,
$description,
$zone,
$perimetre,
$langue,
"doc/" . $nom . "." . $extensionUpload,
$auteur,
$date,
$comm_sur_modif,
$commentaire,
];
$resultat = $pdo->prepare($requete);
$resultat->execute($params);
header("location:documents.php");
}
}
}
}
<div class="form-group">
<label for="type_doc">type de document </label>
</br>
<select name="type_doc" id="type_doc">
<option value="NA">N/A</option>
<option value="guide_de_conception">guide de conception</option>
<option value="standard_rt">standard et RT</option>
<option value="methodologies">methodologies</option>
<option value="processus">processus</option>
<option value="retex_capitalisation">retex et capitalisation</option>
<option value="normes_reglementations">normes reglementations</option>
<option value="cdc">CDC</option>
<option value="essais_plans_validation">essais et plans de validation</option>
</select>
</div>
答案 0 :(得分:0)
概述:
您需要将所需字段的列表存储在某处。您不能将它们存储在LocalStorage或cookie中-它们将存储在管理员计算机的本地(因此用户将如何看到这些更改?)。您需要一个中心位置:Web服务器。这给您两个选择:(a)Web服务器上的文件或MySQL数据库(现在称为MariaDB)中的文件。我建议(b)。
为了读取/写入Web服务器上的文件-或从Web服务器上的数据库添加/删除/读取-您需要编写一些服务器端代码。 MOST网络服务器将PHP作为后端语言提供,但是Microsoft服务器使用ASP .Net。现在,还可以选择安装/使用node.js(如果要使用javascript作为后端服务器语言)。如前所述,PHP十分流行,并且在数不胜数的博客和YouTube教程中都有一些地方展示了如何做到这一点。
以PHP为例,您将index.html
重命名为index.php
-只需这样做。目前不存在任何影响-但是现在您可以嵌入PHP代码的各个部分,并且服务器将在呈现/显示HTML之前运行该代码。 (请注意,重命名文件扩展名不会发生其他变化。只要您在apache网络服务器上-多数情况下-您无需再使用.html
扩展名。)
您的index.php
现在将以一段PHP代码开始,该代码段告诉它(a)登录数据库,(b)从表中读取该值,(c)将值存储在一个变量。现在,在呈现页面时,很容易将数据隐藏到HTML中。
您将需要一个只有管理员才能访问的页面。同样,使用后端语言将允许您的管理页面(HTML)请求用户名和密码,然后运行一些后端代码来检查存储在Web服务器上的信息(同样,是在文件中还是在数据库中)表),以查看用户名/密码是否正确。
登录后,您的管理页面将:
与上面的步骤(4)一样,读取数据库表以获取下拉菜单的user
级选择的当前设置,然后在屏幕上显示这些选择。您还将需要一种为下拉菜单添加新选项的方法,以及一个按钮来指示更改已完成。按下后,页面会将数据发送回Web服务器,以存储回表中,从而覆盖之前的内容。
有两种方法将数据从HTML页面发送到Web服务器:(a)<form></form>
和(b)AJAX。无论如何,请使用AJAX-表单更受限制,方式也不太优雅,并且需要刷新或更改页面。 表格为1999年,AJAX为2019年。
用javascript / jQuery编写的AJAX,可让您(a)检测按钮单击; (b)从输入字段中收集数据; (c)将数据发送到网络服务器上的PHP文件; (d)在HTML端收到一条消息(在将数据添加到表中之后,从Web服务器接收); (e)顺利更新页面,而不刷新任何内容。使用AJAX,您(作为开发人员)从头到尾始终保持完全的控制权,谨慎。
无数的YouTube和博客教程介绍了如何在PHP和jQuery中完成所有这些操作。 享受!
这是一对: