Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择ajax发送额外参数_Javascript_Php_Jquery_Ajax_Cakephp - Fatal编程技术网

Javascript 选择ajax发送额外参数

Javascript 选择ajax发送额外参数,javascript,php,jquery,ajax,cakephp,Javascript,Php,Jquery,Ajax,Cakephp,我目前正在使用所选的JQuery插件: 使用此补充(添加Ajax请求): 我想知道是否有人能够向ajax函数发送额外的参数。 现在它只发送输入中的字母,但我想发送一个额外的id。 以下是我正在做的: $("#mySelect").ajaxChosen({ minTermLength: 2, type: "GET", url: "/Orders/ajax_getBundleItems", dataType: "json", error: onIt

我目前正在使用所选的JQuery插件:

使用此补充(添加Ajax请求):

我想知道是否有人能够向ajax函数发送额外的参数。 现在它只发送输入中的字母,但我想发送一个额外的id。 以下是我正在做的:

    $("#mySelect").ajaxChosen({
    minTermLength: 2,
    type: "GET",
    url: "/Orders/ajax_getBundleItems",
    dataType: "json",
    error: onItemChosenFail
    },
    function (data)
    {
        var terms = {};

        $.each(data, function (i, val) {
            terms[i] = val;
        });
        return terms;
    });
我使用的是CakePHP框架,下面是我的ajax函数:

    public function ajax_getBundleItems($term = null) {
            $this->layout = false;
            echo "<pre>";
            var_dump($this->request->data);
            var_dump($this->params['url']['term']);
            echo "</pre>";
      }
公共函数ajax\u getBundleItems($term=null){
$this->layout=false;
回声“;
var id = 123;

    $("#mySelect").ajaxChosen({
    minTermLength: 2,
    type: "GET",
    url: "/Orders/ajax_getBundleItems?Id="+id,
    dataType: "json",
    error: onItemChosenFail
    },
    function (data)
    {
        var terms = {};

        $.each(data, function (i, val) {
            terms[i] = val;
        });
        return terms;
    });
变量转储($this->request->data); 变量转储($this->params['url']['term']); 回声“;
var id = 123;

    $("#mySelect").ajaxChosen({
    minTermLength: 2,
    type: "GET",
    url: "/Orders/ajax_getBundleItems?Id="+id,
    dataType: "json",
    error: onItemChosenFail
    },
    function (data)
    {
        var terms = {};

        $.each(data, function (i, val) {
            terms[i] = val;
        });
        return terms;
    });
}
$this->params['url']['term']给我输入中的字母,我希望$this->request->data成为一个id


关于

您可以在url参数中传递它,如下所示:

var MyId = 23;

$("#mySelect").ajaxChosen({
    minTermLength: 2,
    type: "GET",
    url: "/Orders/ajax_getBundleItems",
    dataType: "json",
    data: { id:MyId },
    error: onItemChosenFail
    },
    function (data)
    {
        var terms = {};

        $.each(data, function (i, val) {
            terms[i] = val;
        });
        return terms;
    });


您可以在此处传递来自某个变量的Id,这是实际答案,使用BeforeSend选项:


这只有在id不变的情况下才能起作用。我想在用户每次按一些字母时发送一个特定的id。您也可以传递一个变量。这里有没有一种方法可以随时更改数据?假设我有一个复选框,当有人单击它时,它会触发click事件,该事件可以修改所选数据库中的数据集。有可能吗?是的,我想你已经重新初始化了选择的make一个函数,然后在那里调用它。我投票了,但是这个解决方案不适合我。即使变量值已更改,函数也始终使用设置的第一个参数调用。即使我重新初始化函数,重新分配它,它也会保持初始值。