03.03.2016, 10:56
|
Аспирант
|
|
Регистрация: 21.02.2016
Сообщений: 53
|
|
очередной затык с обновлением определенного div
Уважаемые гуру, вопрос:
есть форма:
<form>
<input type='text' name='one' value=''>
//...
<input type='submit' name='go' value='в атаку' id='add'>
</form>
отправляется $.ajax. После изменений в базе соответственно ничего не меняется, пока не перезагрузишь страницу.
на самой странице есть div типо:
<div class='article'>
[PHP]require_once "/lib/base_one.php";[/PHP]
</div>
В нем функция принта которая выводит на страницу код с выборкой из БД.
подскажите плиз как обновить
<div class='article'></div>
после отправки формы не перезагружая всю страницу?
спасибо!
P.S. и если можно, на материал по ajax технологии ссылочку с подробными объяснениями как с нм работать с примерами (как для тупо*рылых). Буду отдельное спасибо!
|
|
03.03.2016, 11:49
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Vincent Vega,
Сообщение от Vincent Vega
|
есть форма:
<form>
<input type='text' name='one' value=''>
//...
<input type='submit' name='go' value='в атаку' id='add'>
</form>
отправляется $.ajax.
|
А у формы нет action. Или у вас есть процедура onsubmit?
|
|
03.03.2016, 12:17
|
Аспирант
|
|
Регистрация: 21.02.2016
Сообщений: 53
|
|
Сообщение от Dilettante_Pro
|
,
А у формы нет action. Или у вас есть процедура onsubmit?
|
onsubmit='послать()'
|
|
03.03.2016, 12:27
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Vincent Vega,
Вы пишете, отправляется в ajax. А как? Стандартно данные из формы отправляются в соответствии с тем, что прописано в action формы. Если там ничего не приписано, то должна быть функция по событию submit, в которой прописывается, что делать с данными из формы. В принципе, их можно никуда и не посылать, а использовать на странице по своему усмотрению
Почитайте https://webref.ru/html/form
Последний раз редактировалось Dilettante_Pro, 03.03.2016 в 12:30.
|
|
03.03.2016, 13:18
|
Аспирант
|
|
Регистрация: 21.02.2016
Сообщений: 53
|
|
есть php файл работающий с базой данных реализованный на singlTon.
ajax отправляет в обработчик.php к которому подключен класс validate_data.php.
var forms_data = $('form.class').serialize();
$ajax({
type: 'POST',
url: 'акшин.php',
//.....,
success:function(data){
//... дата возвращает ответ сервера и записывает в div.ansver
//...сюда прописать код перезагружающий определенный div
}
});
перековырял гугл, ответов много, рабочих нет
$('div#//название').reload //(или load)()
не рабочие.
все данные отправляются нормально, ответ приходит, но результат меняется только после обновления. ответ от сервера просто строка с инфой типо: "все пучком, данные отправлены." как перезапустить php function или обновить div?
Последний раз редактировалось Vincent Vega, 03.03.2016 в 13:22.
|
|
03.03.2016, 14:24
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Vincent Vega
|
сюда прописать код перезагружающий определенный div
|
А что значит "перегрузить div"? Изменились данные в нем, тогда кто ими управляет? Нет, не изменились, тогда зачем перегружать?
Вы пишите в примере о получении данных для div.ansver, а перегружать нужно какой-то определенный. Какой?
|
|
03.03.2016, 14:53
|
Аспирант
|
|
Регистрация: 21.02.2016
Сообщений: 53
|
|
Сообщение от laimas
|
А что значит "перегрузить div"? Изменились данные в нем, тогда кто ими управляет? Нет, не изменились, тогда зачем перегружать?
Вы пишите в примере о получении данных для div.ansver, а перегружать нужно какой-то определенный. Какой?
|
изначально в div подключается require_once "страница.php"; в ней куча форм в которых выводятся данные. страница.php не имеет html тегов, там php скрипт который обращается к базе, получает данные, генерит html вставляя данные в ячейки формы. таких форм там может быть 2 или 200+, зависит от запроса. каждая форма отправляется отдельно (у всех есть кнопки). Отправляются по уникальному id. нужно после отправки формы сделать что-то типо F5 только для div или перезапустить function php которая находиться в страница.php через js. div.ansver - отображает результат работы оброботчика.
насколько мне объяснили ранее, класс->метод() или просто function php из js запустить невозможно, остается перезагрузка div, все прекрасно работает если тупо в form action='' указать обработчик. данные отправляются, страничка перезагружается с новыми результатами, как сделать без перезагрузки всей страницы, а перезапустить только div.
|
|
03.03.2016, 14:59
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Vincent Vega,
Все заново введенные данные у вас есть - var forms_data = $('form.class').serialize();
Можете их использовать как угодно, вам от сервера ничего не нужно, кроме положительного ответа
|
|
03.03.2016, 15:07
|
Аспирант
|
|
Регистрация: 21.02.2016
Сообщений: 53
|
|
да.. ничего от сервера не надо. нужно просто перезапустить php скрипт в div.
он сам все сделает. или обновить div, что приведет к перезапуску php скрипта
|
|
03.03.2016, 15:31
|
Аспирант
|
|
Регистрация: 21.02.2016
Сообщений: 53
|
|
может можно что-то типо:
$(document).ready(function(){
// после отправки формы
$('div.class').remove();
var block = $('<div/>',{
class: 'class',
text: '<?php require_once "название.php" ?>'
});
$(block).appendTo('div.class2');
});
но снова таки из js php недоступен
|
|
|
|