Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   очередной затык с обновлением определенного div (https://javascript.ru/forum/jquery/61692-ocherednojj-zatyk-s-obnovleniem-opredelennogo-div.html)

Vincent Vega 03.03.2016 10:56

очередной затык с обновлением определенного 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 технологии ссылочку с подробными объяснениями как с нм работать с примерами (как для тупо*рылых). Буду отдельное спасибо! :)

Dilettante_Pro 03.03.2016 11:49

Vincent Vega,
Цитата:

Сообщение от Vincent Vega
есть форма:
<form>
<input type='text' name='one' value=''>
 //...
 <input type='submit' name='go' value='в атаку' id='add'>
</form>

отправляется $.ajax.

А у формы нет action. Или у вас есть процедура onsubmit?

Vincent Vega 03.03.2016 12:17

Цитата:

Сообщение от Dilettante_Pro (Сообщение 409793)
,

А у формы нет action. Или у вас есть процедура onsubmit?

onsubmit='послать()'

Dilettante_Pro 03.03.2016 12:27

Vincent Vega,
Вы пишете, отправляется в ajax. А как? Стандартно данные из формы отправляются в соответствии с тем, что прописано в action формы. Если там ничего не приписано, то должна быть функция по событию submit, в которой прописывается, что делать с данными из формы. В принципе, их можно никуда и не посылать, а использовать на странице по своему усмотрению
Почитайте https://webref.ru/html/form

Vincent Vega 03.03.2016 13:18

есть 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?

laimas 03.03.2016 14:24

Цитата:

Сообщение от Vincent Vega
сюда прописать код перезагружающий определенный div

А что значит "перегрузить div"? Изменились данные в нем, тогда кто ими управляет? Нет, не изменились, тогда зачем перегружать?

Вы пишите в примере о получении данных для div.ansver, а перегружать нужно какой-то определенный. Какой?

Vincent Vega 03.03.2016 14:53

Цитата:

Сообщение от laimas (Сообщение 409815)
А что значит "перегрузить 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.

Dilettante_Pro 03.03.2016 14:59

Vincent Vega,
Все заново введенные данные у вас есть - var forms_data = $('form.class').serialize();
Можете их использовать как угодно, вам от сервера ничего не нужно, кроме положительного ответа

Vincent Vega 03.03.2016 15:07

да.. ничего от сервера не надо. нужно просто перезапустить php скрипт в div.
он сам все сделает. или обновить div, что приведет к перезапуску php скрипта

Vincent Vega 03.03.2016 15:31

может можно что-то типо:
$(document).ready(function(){
 // после отправки формы
 $('div.class').remove();
 var block = $('<div/>',{
  class: 'class',
  text: '<?php require_once "название.php" ?>'
  });
 $(block).appendTo('div.class2');
});


но снова таки из js php недоступен :(


Часовой пояс GMT +3, время: 18:08.