Я хотел бы знать, можно ли запустить запрос обновления, когда элемент выбран из выпадающего списка. Пользователь делает выбор, затем вызывается функция для обновления определенного поля в базе данных. Это будет достигнуто с помощью окна выбора для сохранения параметров. Благодарю.
echo '<td>'; echo '<select name="order_status[]" onChange = "update()">'; echo '<option value = "1" class ="pending">Pending</option>'; echo '<option value = "2" class = "approved">Approved</option>'; echo '<option value = "3" class ="disapproved">Disapproved</option>'; echo '</select>'; echo '</td>'; echo '</tr>';
Да, это возможно. Если вы хотите, чтобы запрос выполнялся без проблем (то есть без нажатия кнопки отправки и обновления страницы), вам нужно будет использовать Ajax для асинхронного запроса запроса на ваш PHP-скрипт.
EDIT: Проще всего просто использовать функцию jQuery $.get()
в вашем событии onchange
. Таким образом, каждый раз, когда кто-то выбирает вариант, jQuery отправит запрос на ваш PHP-скрипт с этим значением параметра. Сценарий PHP запустится и вернет новые данные обратно в ваш jQuery, который затем будет использовать свои функции DOM для вставки этих данных на вашу страницу.
Вы можете сделать то же самое с помощью кнопки. Просто $.get()
в событие onclick
кнопки, а не в событие onchange
элемента onchange
.
Документация сайта jQuery предоставит вам соответствующие примеры кода.
EDIT 2: Хорошо, вот очень консервированный пример.
Во-первых, давайте подумаем о фактическом процессе, который вы хотите выполнить на заднем плане. Проще говоря, вы хотите взять идентификатор из пользовательского ввода и использовать его для запуска в запросе. Довольно прямо вперед (используя PDO для работы с базой данных):
// in a real app, you'd need to sanitize and validate the incoming id $id = $_GET['id']; $stmt = $dbh->prepare("SELECT * FROM table_name WHERE id = :id"); $stmt->bindParam(":id", $id); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); echo json_encode($row); // makes it jQuery friendly
Хорошо, поэтому задний конец довольно прост. Теперь, для конца шрифта, где происходит волшебство. Вот как я подошел бы, используя как элемент select
и button
, чтобы передать идентификатор скрипту PHP, а затем обработать результаты:
<!-- Your HTML up to where the select and button are on your page --> <select id="id" name="id"> <option value="1">Something</option> <option value="2">Something Else</option> <option value="3">Yet Another Thing</option> </select> <button id="btn" /> <!-- In your jQuery --> $("#btn").click(function() { $.get("path/to/your/back/end/script.php", { "id" : $("#id").value }, function(data) { /* the data will be the json_encode($row) that was echoed from the PHP script. * so, you'll need to drill into it, take the data you want, and use * jQuery's/JavaScript's DOM manipulation tools to insert the data on your * page */ }) // close $.get() }); // close .click()
Ничего из этого не проверено, и это, по общему признанию, неполное, но этого должно быть более чем достаточно, чтобы начать. На самом деле все, что вам нужно выяснить, – это то, как сверлить возвращаемые данные (это объект JSON, поэтому он не должен быть слишком плохим … используйте инструменты веб-разработки браузера, чтобы увидеть, как данные фактически сформированы) и вставьте его туда, где хотите. Это и любые глупые ошибки, которые я, возможно, сделал выше.
Надеюсь это поможет!