从另一个函数中的URL获取ID

时间:2015-04-14 18:32:24

标签: javascript php jquery cakephp

我的问题很简单......见代码:

我的自动填充功能:

$("#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接收...我怎么能这样做?

2 个答案:

答案 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

的结果