ВопросКак удалить строки из таблицы при помощи AJAX
Здравствуйте Евгений
С удовольствием посмотрел Ваше выступление "Всё об AJAX в Drupal 7".
Проблема такая. Есть таблица в базе данных. Допустим только одно поле ID. Выводим таблицу на экран. В строке 2 колоки: Поле ID и ссылка или иконка "Удалить строку". При нажатии на кнопку "Удалить строку" нужно удалить строку с экрана и из базы данных без перезагрузки страницы. Как сделать это при помощи JQuery представляю. А вот как это все встроить в Drupal 7 не совсем ясно.
1) Как оформить кнопку "Удалить строку" ?
Сделать ее формой или ссылкой? Или ловить Click в файле JS
2) Если ловить событие #ajax['callback'] , то как передать сюда параметр ID
3) Можно ли обойтись только средствами AJAX в Drupal 7 или без JQuery не обойтись ?
Спасибо
- Гость
- 11.05.2012
- 8728
Комментарии
Можно обойтись и обычным AJAX в Drupal 7. Единственное, что вам нужно добавить в форму - это правильное создание ссылки (не формы) "Удалить строку". Например, сейчас она у вас такие:
Сделайте их такими:
Здесь 0 и 1 - это порядковый номер строки в таблице, начиная с нуля. Далее вы легко получите этот номер в колбэке страницы, на которую ссылается линк. Это будет нашим порядковым номером (eq, если вы знакомы с js). По этому порядковому номеру вы всегда сможете получить доступ к вашей строке. А дальше вам всего -то надо сделать так на ответе от сервера:
Вместо table, конечно, лучше прописать её ID.
Как удалить строки из таблицы при помощи AJAX
Не получилось
Возврат из процедуры не знаю как сделать.
Обратно в таблицу не возвращается после вызова
функции callback_ajax_order_item_del($item_id)
Я надеюсь, что здесь $row->item_id - это не ID материала, а его порядковый номер в таблице.
Дальше:
Вот так лучше)
Как удалить строки из таблицы при помощи AJAX
"Я надеюсь, что здесь $row->item_id - это не ID материала, а его порядковый номер в таблице."
$row->item_id это ID товара в строке заказа. Нужно добавлять, Изменять и удалять данные в строке на экране и в базе данных. Реальный код function callback_ajax_order_item занимает примерно 600 строк.
Не совсем понимаю почему Вы против использования ID товара и почему предпочтительнее использовать порядковый нор в таблице. И как связать тогда строку с базой данных ? Поясните, пожалуйста...
>> Не совсем понимаю почему Вы против использования ID товара
В данном случае это вам не надо. Вам надо получить порядковый номер строки таблицы и её удалить. Его и надо выводить! С базой данных это вообще никак связывать не надо, т.к. это будет просто какое-то число для отображения на экране, по которому js будет определять позицию каждой строки в таблице.
Комментировать