Не могу настроить работу ajax

Главные вкладки

Аватар пользователя abutan abutan 18 февраля 2016 в 13:32

Здравствуйте.
Проблема такая. Нужно настроить следующее: на странице созданной пользователем кнопка. По клику разворачивается блок с картинками, пользователь выбирает, кликает что нибудь вроде "Добавить" и нужная картинка становится в нужное место. Ну в теории потом заходит еще пользователь и делает тоже самое, и его картинка добавляется к уже имеющейся.
Первую часть решил так - форма в блоке. В форме чекбокс по клику по которому, через '#states' разворачивается куча радио кнопок с картинками и submit.
На submit вешаю ajax callback
В callback выбираю значение отмеченной радио кнопки, пишу switch , в котором описываю в зависимости от значения какая именно картинка будет. Папка с картинками лежит в /sies/default/files . Дальше пишу
$commands = array();
$commands[] = ajax_command_append('.image-block', $result);
return array(
'#type' => 'ajax',
'#commands' => $commands)
Блок куда складываются картинки создан и прописан в node.tpl.php нужного типа материала, как впрочем и блок с формой. В обычном submit прописываю только сообщение типа спасибо.
И вот тут начинаются непонятки. Все как бы срабатывает, картинка становится в нужное место, следующая картинка ведет себя порядочно, и становится в положение append. Но вот после перезагрузки все пропадает. Картинок нет на странице.
Подскажите пожалуйста где я себя делаю? Или такой подход в принципе не верный и не будет работать? Или нужно выполнять еще что то, а я этого не делаю?
Куда идти копать то?
Заранее благодарен за любую помощь.

Комментарии

Аватар пользователя bumble bumble 18 февраля 2016 в 16:28
1

Ну... Если я правильно понял, Вы не сохраняете значение.
Т.е. нужно помимо вывода картинки в блок, еще и эту картинку отметить как-ти, или в поле добавить, вобщем в БД сделать запись о ней для последующих использований.
Ну и вывод этих картинок организовать, в node.tpl.php, или к чему они там привязаны.

З.Ы. Лучше не просто расписать что делает код, а привести его, если в нем дело.

Аватар пользователя abutan abutan 18 февраля 2016 в 23:54

ОГРОМНОЕ СПАСИБО!
Вы все правильно написали. Дело было не в коде. Я не понимал принцип. После вашей подсказки понял куда смотреть то.
Подсмотрел вот тут http://xandeadx.ru/blog/drupal/393 . Теперь все работает именно так как и задумывалось.
Правда у меня еще вопрос теперь появился. А как можно это все подписать. Ну типа добавил тот то. Все эти данные я получаю из формы, а как их добавить под картинку, если я ее вывел в поле?

Аватар пользователя bumble bumble 19 февраля 2016 в 0:00
1

Можно в тайтл, например, записывать. Или использовать какой-нить Image Field Caption.
Если нужно более разделенно и информативно, можно в Field collection запихивать.
Можно просто в БД писать и выводить как и где нужно.
...

Надо понимать и видеть всю картину.

Вариантов - куча. Берите удобный.