как обновить html-select без перезагрузки страницы в php

#javascript #php #html #ajax #mysqli

#javascript #php #HTML #ajax #mysqli

Вопрос:

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

 <form action="edit_col_exe.php" method="post">
<p><label>Add Element:</label>
   <input autofocus type="text" name="elemnt" class="input" required />
</p>
<table>
   <tr>
      <td><input type="submit" name="Save" value="Save" /></td>
    </tr>
</table>
</form>  

Form2:

Выберите запрос элемента («выбрать * из элементов, упорядоченных по элементу asc») или die («сбой»); echo «Выберите опцию»; в то время как ($reg=$con ->fetch_assoc()){ echo «»; echo $reg[‘Element’]; }?>

Я надеюсь, что кто-нибудь сможет мне помочь! с уважением!

Комментарии:

1. Вы просто используете Ajax для перезагрузки элементов без обновления страницы. В Интернете есть много примеров

Ответ №1:

Используйте Ajax (я предпочитаю jQuery) и удалите свою форму.

JS

 function addElement(){
  // get new name
  var name = $("#newElementsName").val();
  // create ajax call
  $.ajax({
    type: "POST",
    url: "edit_col_exe.php", // URL to php script
    data: { // post data for php script (I use the data from your form (including the typo))
      elemnt: name,
      save: 'Save'
    },
    success: function(data){
      // this function will be called when php script run successful (HTTP-Status 2xx)
      // Clear the input filed
      $("#newElementsName").val('');
      // Add new name to dropdown
      $("#elements").append("<option>" name "</option>");
    }
  });  

}
  

HTML

 <div>
  <p><label>Add Element:</label>
     <input autofocus type="text" id="newElementsName" class="input" required />
  </p>
  <table>
     <tr>
        <td><button type="button" onclick="addElement()">Save</button></td>
      </tr>
  </table>
</div>
<div>
  <select id="elements" size="1">
  </select>
</div>
  

Ответ №2:

Я решил свою проблему и хочу поделиться с вами своим решением, оно простое:

 setInterval(function(){
            $('#searchelement').load('addelements.php');
        });
  

 <p><label>Element</label>
					<select id="searchelement" name="element" required />
</option>
</select></p>  

Итак, каждый раз, когда я добавляю элемент в ‘addelements.php ‘, Я могу выполнить поиск нового элемента в списке выбора.