Вставьте новые опции из плагина Chosen в MySQL с PHP - PullRequest
0 голосов
/ 09 февраля 2019

Я использую плагин Chosen для создания select, который может динамически добавлять новый option, если искомый не найден.select извлекает данные из таблицы mySQL (1 столбец) и вставляет их в select как option (inc/topicselect.inc.php файл).

Для добавления нового option в selectЯ использую код JavaScript внутри chosen.jquery.js ниже (случай 13), подключенный к клавише Enter.Теперь это работает отлично, но только временно вставляет его в select, что означает, что после обновления все исчезло.

Я пытаюсь добиться этого, добавить новое добавленное option и вставитьэто в таблицу с использованием PHP (последний фрагмент кода), так что позже он будет постоянно показываться всем пользователям, использующим эту (рабочую) выборку из более ранних версий.

Любые идеи о том, как я могу соединить этот javascript сPHP вставить?

<select data-placeholder="Wybierz tematy:" class="topic-dropdown" name="topic" action="inc/topicselect.inc.php" class="chosen-select" multiple>
  <?php require 'inc/topicselect.inc.php' ?>
</select>
case 13:
  evt.preventDefault();
  if (this.results_showing) {
    if (!this.is_multiple || this.result_highlight) {
      return this.result_select(evt);
    }
    $(".topic-dropdown").append('<option>' + $(evt.target).val() + '</option>');
    $(".topic-dropdown").trigger('chosen:updated');
    this.result_highlight = this.search_results.find('li.active-result').lastreturn;
    this.result_select(evt);
  }
  break;
<?php if(isset($_POST["?"])) {
  require "connect.inc.php";
  $topic=$_POST["topicname"];
  if(empty($topic)) {
    header("Location: ../index.php#dodajpost?puste");
    exit();
  }
  else {
    $sql="SELECT name FROM topics WHERE name=?";
    $stmt=mysqli_stmt_init($conn);
    if(!mysqli_stmt_prepare($stmt, $sql)) {
      header("Location: ../index.php#dodajpost?error=sqlerror");
      exit();
    }
    else {
      mysqli_stmt_bind_param($stmt, "s", $_POST["topicname"]);
      mysqli_stmt_execute($stmt);
      mysqli_stmt_store_result($stmt);
      $resultcheck=mysqli_stmt_num_rows();
      if($resultcheck > 0) {
        header("Location: ../index.php#dodajpost?jużjest");
        exit();
      }
      else {
        $sql="INSERT INTO topics (name) VALUES (?)";
        $stmt=mysqli_stmt_init($conn);
        if(!mysqli_stmt_prepare($stmt, $sql)) {
          header("Location: ../index.php#dodajpost?błądzapisu");
          exit();
        }
        else {
          mysqli_stmt_bind_param($stmt, "s", $_POST["topicname"]);
          mysqli_stmt_execute($stmt);
          header("Location: ../index.php#dodajpost");
          exit();
        }
      }
    }
  }
  mysqli_stmt_close($stmt);
  mysqli_close($conn);
}

else {
  header("Location: ../index.php#dodajpost?errorstart");
  exit();
}

?>
...