我正在開發一個ps模塊,讓您可以分類產品附件並將它們顯示在前面的產品頁面中。在模塊類中使用ajax處理<select>值,prestashop 1.6
即時通訊使用可拖動列表和附件,當您將它們拖放到類別時,它將變爲選項標籤,每個類別都有一個選擇標籤,用於放置附件。
我想保存附件和它們被刪除的類別,所以我想做一個ajax調用將數據帶到我的模塊類,但我是新的與ajax和不能接近它。
這是世界衛生大會我做:
的js代碼(正確.tpl內):
<script>
$(".droptrue").droppable({
drop: function(event, ui) {
//add <option> tag when an attachment is dropped to category's select
$(event.target).append('<option value="' + ui.draggable.attr('id') + '" selected>'+ui.draggable.text()+'</option>');
//remove the <li> wich contained the attachment data
ui.draggable.fadeOut("slow").remove();
var val = $('#categoryAttachmentArr').val();
//var tab = val.split(',');
//for (var i=0; i < tab.length; i++)
//if (tab[i] == $(this).val())
// return false;
//create an array with the next format: 'id_category(1)'-'id_attachment(1)','id_category(2)'-'id_attachment(2)'[....]
//the comma will be the main character that will be splitted
$('#categoryAttachmentArr').val(val + ui.doppable.attr('id') + '-' + ui.draggable.attr('id') +',');
}
});
$('#submitAddProduct').click(function(e){
$.ajax({
type: 'POST',
url: baseDir + 'modules/adjuntos/classes/CategoryAttachment.php',
data: {
ajax: true,
action: \'CategoryArray\',
cat_array: $('#categoryAttachmentArray').val(),
}
dataType: 'json',
success: function(json) {
console.log($('#categoryAttachmentArray').val());
}
});
})
$(".ui-state-default").draggable({
revert: "valid",
});
</script>
而我的等級:
class CategoryAttachment extends Objectmodel
{
//other functions
public function ajaxProcessCategoryArray()
{
$CategoryAttachmentArr = Tools::getValue('cat_array')
}
}
謝謝回答!所以我必須創建一個新的控制器,或者只需要創建一個新的PHP文件來處理這個問題。或者也許使用一個實際的管理控制器(例如產品控制器)。 你能舉個例子嗎? –
您可以在模塊中使用自定義(前/管理員)控制器,或使用頁面上可用的Hooks來處理您的ajax過程。建議第一種方法。 –