Пытаясь удалить функцию автозаполнения в модуле, я бы хотел, чтобы она перечисляла все категории с флажком для выбора вместо автозаполнения, вот как выглядит код, есть предложения? Я знаю, что в строке 3 нужно внести некоторые изменения.
.'<tr class="category" '.(($this->data['xshippingpro']['category'][$no_of_tab]!=1)?'style="display:table-row"':'').'>'
.'<td>'.$this->data['entry_category'].'</td>'
.'<td><input type="text" name="category" value="" /></td>'
.'</tr>'
.'<tr class="category" '.(($this->data['xshippingpro']['category'][$no_of_tab]!=1)?'style="display:table-row"':'').'>'
.'<td> </td>'
.'<td><div class="scrollbox product-category">';
foreach ($this->data['xshippingpro']['product_category'][$no_of_tab] as $category_id) {
$category_name=$this->getPath($category_id);
$return.='<div class="product-category'.$category_id. '">'.$category_name.'<img src="view/image/delete.png" alt="" />'
.'<input type="hidden" class="category" name="xshippingpro[product_category]['.$no_of_tab.'][]" value="'.$category_id.'" /></div>';
}
$return.='</div></td>'
.'</tr>'
Это другая часть кода, которая обрабатывает вызов для получения данных ...
public function get_categories() {
$json = array();
if (isset($this->request->get['filter_name'])) {
$results = $this->getCategories($this->request->get['filter_name']);
foreach ($results as $result) {
$json[] = array(
'category_id' => $result['category_id'],
'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8'))
);
}
}
$sort_order = array();
это javascript часть кода
$('input[name=\'category\']').autocomplete({
delay: 500,
source: function(request, response) {
$.ajax({
url: 'index.php?route=shipping/xshippingpro/get_categories&token=<?php echo $token; ?>&filter_name=' + encodeURIComponent(request.term),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item.name,
value: item.category_id
}
}));
}
});
},
select: function(event, ui) {
var no_of_tab=$(this).closest('div.shipping').attr('id');
no_of_tab=no_of_tab.replace('shipping-','');
no_of_tab=parseInt(no_of_tab);
$('#form #shipping-'+no_of_tab+' .product-category' + ui.item.value).remove();
$('#form #shipping-'+no_of_tab+' .product-category').append('<div class="product-category' + ui.item.value + '">' + ui.item.label + '<img src="view/image/delete.png" alt="" /><input type="hidden" class="category" name="xshippingpro[product_category]['+no_of_tab+'][]" value="' + ui.item.value + '" /></div>');
return false;
},
focus: function(event, ui) {
return false;
}
});
$('.product-category div img').live('click', function() {
var no_of_tab=$(this).closest('div.shipping').attr('id');
no_of_tab=no_of_tab.replace('shipping-','');
no_of_tab=parseInt(no_of_tab);
$(this).parent().remove();
});
$('select.category-selection').live('change', function() {
var no_of_tab=$(this).closest('div.shipping').attr('id');
no_of_tab=no_of_tab.replace('shipping-','');
no_of_tab=parseInt(no_of_tab);
if($(this).val()=='1'){
$('#form #shipping-'+no_of_tab+' tr.category').css('display', 'none');
}else{
$('#form #shipping-'+no_of_tab+' tr.category').css('display', 'table-row');
}
});