Я новичок в CS корзину. Мне нужно передать результаты ajax в файл шаблона блоков.
У меня есть следующий код в моем контроллере: —
if($mode=='drill')
{
$id=166;
Registry::get('view')->assign('pid', $id);
$all_subcategory=fn_get_subcategories($id);
foreach($all_subcategory as $value){
$sub_cat[$value['category_id']]=$value['category'];
}
Registry::get('view')->assign('all_year', $sub_cat);
Registry::get('view')->display('templates/blocks/product_filters/components/drillsearch.tpl');
Registry::get('view')->assign('all_year', $sub_cat);
return $sub_cat;
}I have the following code in drillsearch.tpl :-function fun(){
var sBase = location.href.substr(0, location.href.lastIndexOf("/") + 1);
$.ajax({
url: sBase+"index.php?dispatch=drill.drill",
data: 123 ,
type: "POST",
success: function(data) {
alert("sfd");
alert(data);
},
error: function(xhr, status, error) {
alert('failed');
alert(xhr.responseText);
}
});
}
Здесь результаты ajax не назначают шаблоны / blocks / product_filters / components / drillsearch.tpl. Как решить эту проблему. Пожалуйста, помогите мне
Отправляя запрос от представления к контроллеру, вы можете «ответить» на представление, просто используя это:
Registry::get('ajax')->assign('all_year', $sub_cat);
Я считаю, что это будет работать нормально, так как переменная, которая вам нужна, будет доступна для вашего ответа AJAX.
Пожалуйста, попробуй
if($mode=='drill'){
$id=166;
$all_subcategory=fn_get_subcategories($id);
foreach($all_subcategory as $value){
$sub_cat[$value['category_id']]=$value['category'];
}
header('Content-Type: application/json');
echo json_encode($sub_cat);
exit;
}
function fun(){
$.ajax({
url: Tygh.index_script+"?dispatch=drill.drill",
data: { variable: '123' },
type: "GET",
success: function(categories) {
for(var category_id in categories){
console.log(category_id+' > '+categories[category_id]);
}
}
});
}
Надеюсь, это поможет,