我的问题很简单......见代码:
我的自动填充功能:
$("#produto").autocomplete({
source: '/pedidoOnline/index.php/Pedidos/search/' + $('#codigo_fabricante').val(),
minLength: 2,
focus: function(event, ui) {
$("#produto").val(ui.item.label);
return false;
},
select: function(event, ui) {
$('#procura_produto').val(ui.item.id);
preencherLinhaProduto(ui.item.id);
}
});
收到codigo_fabricante的其他功能: 我在控制器中的功能:
public function search() {
$this->autoRender = false;
// Consultando pelo que o usuário está digitando
$term = $this->request->query ['term'];
//This way isn't working, I tried ['pass'][0] either.
$fabricante = $this->request->params['pass'];
echo($fabricante);
$this->loadModel ( 'ProcuraProdutoPedOnline' );
$produtos = $this->ProcuraProdutoPedOnline->find ( 'all', array (
'limit' => 20,
'fields' => array (
'cd_cpl_tamanho',
'ds_produto'
),
'conditions' => array (
'cd_fabricante' => "$fabricante",
'ds_produto LIKE' => '%' . mb_strtoupper ( $term ) . '%'
)
));
我希望在我的函数“search()”中得到+ $('#codigo_fabricante')。val()的值,$ fabricante接收...我怎么能这样做?
答案 0 :(得分:1)
您需要在传递(您在服务器端检索)作为查询字符串值发送> JS 代码:
'/pedidoOnline/index.php/Pedidos/search?pass=' + $('#codigo_fabricante').val()
<强> JS 强>
$("#produto").autocomplete({
source: '/pedidoOnline/index.php/Pedidos/search?pass=' + $('#codigo_fabricante').val(),
minLength: 2,
focus: function(event, ui) {
$("#produto").val(ui.item.label);
return false;
},
select: function(event, ui) {
$('#procura_produto').val(ui.item.id);
preencherLinhaProduto(ui.item.id);
}
});
答案 1 :(得分:1)
喜欢这个。
像这样修改自动完成功能,只需将/添加到搜索结尾
即可$("#produto").autocomplete({
source: '/pedidoOnline/Pedidos/search/' + $('#codigo_fabricante').val(),
minLength: 2,
focus: function(event, ui) {
$("#produto").val(ui.item.label);
return false;
},
select: function(event, ui) {
$('#procura_produto').val(ui.item.id);
preencherLinhaProduto(ui.item.id);
}
});
这样做会将值添加为url参数,而不是通过$_GET
在被调用的方法中,它将作为参数提供。它的蛋糕方式。
public function search($term) {
//method code here, but $term is now accessible as a local variable
//to debug this to make sure its getting passed in, add the next line of code
debug($term);die;
}
接下来,将完整的URL路径放入浏览器栏中,并且应该获得您已经通过的值的输出。例如:
localhost/pedidoOnline/Pedidos/search/somestringhere
应该调试somestringhere