我正在尝试通过ajax json数组传递值,但是catergory变量的值没有参与控制器操作
var category = $('#category').val();
var url = $('#ajax_action_search').val();
$.ajax({
type: "POST",
data: {
'category': category
},
dataType: "json",
cache: false,
contentType: false,
processData: false,
success: function(response) {}
});
答案 0 :(得分:1)
您需要使用与扩展名/插件匹配的参数名称空间:
$.ajax({
// ...
data: {
'tx_myext_foo[category]': category,
},
// ...
});
但是您还需要配置cHash
评估,因为这将导致类似/?tx_myext_foo[category]=X
的HTTP请求,如果没有匹配的cHash
,HTTP请求将失败。
答案 1 :(得分:0)
如果从ajax传递的category
(参数名称)在控制器操作中也完全相同,请检查控制器操作
var category = $('#category').val();
var url = $('#ajax_action_search').val();
$.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
cache: false,
async: false,
url: url,
data: JSON.stringify {
category: category
},
dataType: 'json',
success: function(response) {}
});
答案 2 :(得分:0)
您需要使用动作和控制器制作ajaxurl。然后以完整格式传递数据。
var ajaxUrl = '<f:uri.action action="youraction" controller="Yourcontroller" />';
var category = $('#category').val();
$.ajax({
type: 'POST',
url: ajaxUrl,
data: '&tx_yourext_yourplugin[category]='+category,
success: function(response) {
},
});
答案 3 :(得分:-1)
只需进行以下更改:
var category = $('#category').val();
var url = $('#ajax_action_search').val();
$.ajax({
type: "POST",
url:url,
data: {'category': category},
dataType: "json",
success: function(response) {}
});