На моей странице у меня есть таблица, и в этой таблице есть список элементов плюс кнопка редактирования.
При нажатии кнопки редактирования я хочу заполнить форму информацией, относящейся к этой записи в таблице. Вся информация хранится в базе данных mySQL и может быть доступна через PHP.
Мне нужен мой javascript на кнопке редактирования, чтобы получить идентификатор строки таблицы в PHP, который будет запрашивать базу данных, возвращая правильные значения, а затем javascript должен получить эти записи и заполнить форму.
Как это сделать?
Я могу вызывать "событие" PHP-макета, заполняя переменную, а затем проверяя:
if($variable){
[do query]
}
Но как заполнить эту переменную из Javascript, имея в виду, что HTML, JS и PHP вложены в одну страницу?
Как это сделать?
Обычным способом сделать это будет гиперссылка на вашей индексной странице, которая ссылается на страницу, на которой отображается страница редактирования. Таким образом, у вас будет URL-адрес: index.php
и edit.php?id=42
. Есть ли причина, по которой вы не хотите этого делать?
HTML, JS и PHP на самом деле не "находятся на одной странице", и это помогает, если вы не думаете об этом таким образом.
У вас есть программа PHP, которая выводит HTML-документ в браузер. В этом документе встроен JS.
Чтобы отправить сообщение от JS на PHP, вам нужно сделать HTTP-запрос. Это можно сделать, создав форму и отправив ее, используя XMLHttpRequest или несколько других методов.
XMLHttpRequest является наиболее распространенным и позволяет вам делать это, не выходя из страницы. Это называется Ajax. Вы можете найти некоторые предложения о том, как начать эту технику в этом вопросе.
Вероятно, вы должны выделить базу данных, обращающуюся к PHP, в многоразовый фрагмент, который будет использоваться совместно с URL-адресом, используемым для генерации страницы, и URL-адрес, используемый для создания фрагмента данных для его позднего обновления (форматирование этого данные с использованием JSON, вероятно, хорошая идея).
Похоже, что какой-то хороший оле ajax принесет вам пользу. Реализация jQuery будет выглядеть примерно так:
$('.button-class').click(function(){
$.ajax({
url: 'your-php-page.php?id=xxx', //Call your php page here
success: function(data) {
$('.table-row').html(data); // Update your page with the data returned
}
});
});
Вы делаете это, делая асинхронный вызов на сервере и ожидая ответа сервера. Это называется AJAX (асинхронный Javascript и XML).
Вот основной учебник: http://www.w3schools.com/ajax/default.asp
Существует также много JS-библиотеки (например, JQuery et Co.), которые могут облегчить вашу жизнь, если вы хотите использовать AJAX
PHP запускается, когда страница загружается и не может быть доступна снова, пока страница не будет перезагружена. Ваше решение состояло в том, чтобы поместить script, который будет обновлять или запускать любой запрос, который вам нужен, и обращаться к нему с помощью Jquery Ajax
Используйте AJAX для вывода данных, посмотрите Jeditable.
iframe
который ссылается наedit.php
.