Как заставить программу обновления ajax обновить все элементы с классом mydivclass с прототипом js? - PullRequest
0 голосов
/ 16 марта 2019

С помощью прототипа Js Ajax.updater я хотел бы обновить КАЖДЫЙ div с определенным КЛАССОМ, но когда я это сделаю, он не будет работать для классов.

Элемент 1 Элемент 2
function mettreajour(span_id, url_traitement, nos_parametres)
    {

    var ajax = new Ajax.Updater ({success:span_id}, url_traitement, {method:'post', parameters: nos_parametres, evalScripts: true}  );

    } 

даже когда я делаю

mettreajour('.mydivclass', 'index.php', &ok=yes);

это не работает.

Как заставить программу обновления ajax обновлять все элементы с помощью класса mydivclass

1 Ответ

0 голосов
/ 17 марта 2019

Документация по этому вопросу достаточно ясна:

http://api.prototypejs.org/ajax/Ajax/Updater/

Ajax.Updater сделает запрос и заменит innerHTML любого элемента, который вы идентифицируете по его идентификатору нарезультаты этого запроса.Другими словами, это пони с одной уловкой.

Если вы хотите создать свой собственный метод для этого, есть две вещи.Сначала используйте менее специализированный Ajax.Request для извлечения данных, затем используйте метод $$() "двойной доллар", чтобы найти элементы, которые вы хотели бы обновить.$$() всегда возвращает массив элементов (или пустой массив, если на странице ничего не соответствует селектору).Вы можете выполнить итерацию по этому массиву, используя метод Enumerable each (), или вы можете использовать специальный случай invoke() (прототип 1.7 и выше) для вызова одного и того же метода для каждого элемента в Enumerable.

new Ajax.Request('/your/url', {
  onSuccess: function(response) {
    $$('.some-class').invoke('update', response.responseText);
  }
});

или

new Ajax.Request('/your/url', {
  onSuccess: function(response) {
    $$('.some-class').each(function(elm){
      elm.update(response.responseText);
    });
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...