Это использует Elgg 1.8, движок социальных сетей.
Я новичок в ajax и пытаюсь отправить форму без обновления, она отправляет форму, но добавляет элемент в список без заголовка.
Форма отображается во всплывающем окне fancybox.
Вот мой документ готовый скрипт:
$ (документ) .ready (function () {
$ (‘. elgg-form-announcements-save’). live (‘submit’, function (e) {//e.preventDefault(); var $form = $(this); elgg.action($form.attr('action'), { data: $form.serialize(), success: function(data) { // check the status and do stuff //e.preventDefault(); var river = $('ul.announcements_list'); if (river.length < 1) { river.append(data.output); } else { $(data.output).find('li:first').hide().prependTo(river).slideDown(500); }; $.fancybox.close(); } }); return false; // prevent the form from submitting e.preventDefault(); }); });
Вот код в файле php действий:
если ($ объявление-> сохранить ()) {
elgg_clear_sticky_form ( ‘объявление’);system_message (elgg_echo ( ‘объявление: сохранить: успех’));
if (elgg_is_xhr ()) {
$ options = array (‘type’ => ‘object’, ‘subtype’ => ‘announcements’, ‘full_view’ => false,
‘pagination’ => false, ‘limit’ => 1);
$ newannouncement = elgg_list_entities ($ options);
echo json_encode ($ newannouncement); }
} еще {
Я не уверен, что мне нужно делать здесь, может быть, использовать «success: function (json) {» вместо «success: function (data) {», но не уверен, как это реализовать.
Я попытался использовать ajaxForm безуспешно.
Спасибо.
Задача ещё не решена.
Других решений пока нет …