我有很多像这样的复选框:
用户将检查每个复选框的一个参数以进行搜索。
如何通过用户通知相关搜索?我们没有义务选择每个复选框中的一个。
我的JS:
var checkeds = new Array();
$("input[name='marcar[]']:checked").each(function (){
checkeds.push( $(this).val());
});
var obj = $("#paramsPesquisa");
if($(obj).find("input[id='cd_seq_pedido']:checked").length > 0){
var cd_seq_pedido = $(obj).find("input[id='cd_seq_pedido']:checked").val();
}else{
var cd_seq_pedido = "";
}
我的Ajax:
$.ajax({
type: "POST",
url: "/pedidoOnline/index.php/Pedidos/checkbox_marcados",
data: {
'marcar':checkeds,
'cd_seq_pedido': cd_seq_pedido,
'cd_pedido': cd_pedido
},
success: function(data){
console.log(data);
}
});
在我的控制器上,如何进行此查询?
$pesquisa = $this->PesquisaPedOnline->find('all', array(
'fields' => array('cd_seq_pedido', 'cd_pedido', 'ds_cpl_tamanho_interno'),
'conditions' => array(?????)
));
如果需要更多信息,我会说,对不起,如果我无法解释清楚。
答案 0 :(得分:0)
在Cake中构建条件数组时,您需要指定每个复选框值对应的字段。例如:
$conditions = array(
'ModelName.fieldname1' => 'value1', // a single checkbox value
'ModelName.fieldname2' => 'value2, value3, value4', // multiple checkbox values
// etc...
);
为了能够像这样构造$conditions
数组,您需要在ajax调用中将更多信息传递给控制器。我建议构建一个JSON对象,以便构建类似{'fieldname1':'value1, value2'}
的东西。
此外,您可能还想考虑如何删除用户取消选中的项目。
答案 1 :(得分:0)
使用搜索插件:https://github.com/cakedc/search
该名称有点误导,它实际上实现了PRG模式,并处理POST请求转换为搜索条件。
这比手动对POST数据进行大量if-else检查更加干净。只需看一下示例和教程,就可以直截了当了。