Как создать страницу администратора для добавления / удаления элементов в раскрывающемся списке? - PullRequest
0 голосов
/ 26 мая 2019

У меня есть форма на моем веб-сайте, которая используется для вставки документов (имеет различные привилегии -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>

1 Ответ

0 голосов
/ 26 мая 2019

Обзор:

  1. Вам нужно где-то хранить список нужных полей.Вы не можете хранить их в LocalStorage или в файлах cookie - они будут храниться локально на компьютере администратора (так, как пользователь увидит эти изменения?) .Вам нужно центральное расположение: веб-сервер.Это дает вам два варианта: (a) файл на веб-сервере или в таблице базы данных MySQL (теперь называется MariaDB).Я предлагаю (б).

  2. Для чтения / записи в файл на веб-сервере - или для добавления / удаления / чтения из базы данных на веб-сервере - вам необходимонаписать некоторый код на стороне сервера.На большинстве веб-серверов PHP доступен в качестве внутреннего языка, но серверы Microsoft используют ASP .Net.Теперь также есть возможность установить / использовать node.js (если вы хотите использовать javascript в качестве языка внутреннего сервера).Как уже упоминалось, PHP очень популярен, и где-то около gazillion blog и YouTube вы найдете инструкции, как это сделать.

  3. Используя PHP в качестве примера, вы переименуете свой index.html вindex.php - просто сделай это.Ничто из существующего в настоящее время не будет затронуто, но теперь вы можете вставлять фрагменты кода PHP, и сервер будет запускать этот код перед отображением / отображением HTML. (Обратите внимание, что когда вы переименуете расширение файла, ничего не изменится. При условии, что вы находитесь на веб-сервере apache - и большинство - вам больше никогда не понадобится расширение .html. Попробуйте его.)

  4. Ваш index.php теперь будет начинаться с фрагмента кода PHP, который говорит ему (а) войти в базу данных, (б) прочитать это значение из таблицы, (в) сохранитьзначение в переменной.Теперь очевидно, что эти данные легко вводить в HTML при отображении страницы.

  5. Вам понадобится страница, к которой имеет доступ только администратор.Опять же, использование языка бэкэнда позволит вашей странице администратора (HTML) запросить имя пользователя и пароль, а затем запустить некоторый код бэкэнда для проверки информации, хранящейся на веб-сервере (опять же, либо в файле, либо в базе данных).Таблица), чтобы увидеть, если имя пользователя / пароль верны.

  6. Ваша страница администратора, после входа в систему, будет:

    • Как в шаге(4) выше, прочитайте таблицу базы данных, чтобы получить текущие настройки для вариантов user -уровня для раскрывающегося списка, затем отобразите эти варианты на экране.Вам также понадобится метод добавления новых опций для выпадающего меню и кнопка, чтобы показать, что изменения сделаны.После нажатия страница отправит эти данные обратно на веб-сервер для сохранения в таблице, перезаписав то, что было раньше.

    • Существует два способа отправки данных из HTMLстраницы веб-сервера: (а) <form></form> и (б) AJAX.Во что бы то ни стало, используйте AJAX - формы более ограничены, менее элегантны и требуют обновления или изменения страницы. Формы 1999, AJAX - 2019.

    • AJAX, написанный на javascript / jQuery, позволяет (а) определять нажатие кнопки;(б) собирать данные из полей ввода;(c) отправить эти данные в файл PHP на веб-сервере;(d) получить сообщение (от веб-сервера, после того как он завершит добавление данных в таблицу) обратно на стороне HTML;(e) обновлять страницу плавно и ничего не обновляя.С AJAX вы (как разработчик) сохраняете полный контроль от начала и до конца, комильфо .

Есть миллионы YouTubeи учебники блога о том, как сделать все это в PHP и jQuery. Наслаждайтесь!

Вот пара:

https://www.youtube.com/watch?v=aujNp92p0Uc

https://www.youtube.com/watch?v=gvGb5Z0yMFY

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...