Php 使用AJAX更改下拉列表值

Php 使用AJAX更改下拉列表值,php,ajax,Php,Ajax,我无法使用AJAX以某种方式更改下拉选项,但是我可以使用当前模型在表单上填充initialize,但“OnChange”下拉列表只是重置为NULL,而不是填充下拉字段 这是我表单视图的一部分。。。 这是我的模型 function get_products_by_client($exp_by_id) { $query = $this->db->query(" SELECT prod_id, prod_name FROM

我无法使用AJAX以某种方式更改下拉选项,但是我可以使用当前模型在表单上填充initialize,但“OnChange”下拉列表只是重置为NULL,而不是填充下拉字段

这是我表单视图的一部分。。。

这是我的模型

function get_products_by_client($exp_by_id)
    {

        $query = $this->db->query("
        SELECT  prod_id, prod_name
        FROM    products
        WHERE   client_id = ".$exp_by_id);

        return $query;
    }

您的ajax请求不需要是post,它可以是GET。此外,还应指定预期的数据类型。另外,您在两种不同的上下文中使用了
prod\u id
,这很容易混淆和出错

为您的ajax调用尝试以下方法:

        $.ajax({ 
            type: "GET", 
            dataType: "json", 
            url: "expenses/get_products_by_client_ajax/"+exp_by_id, 
            success: function(products) { 
                $.each(products,function(prod_id,prod_name) 
                { 
                    var opt = $('<option />'); 
                    opt.val(prod_id); 
                    opt.text(prod_name); 
                    $('#prod_id').append(opt); 
                }); 
            } 

        }); 

您的ajax需要json响应,您是否返回json?
function get_products_by_client($exp_by_id)
    {

        $query = $this->db->query("
        SELECT  prod_id, prod_name
        FROM    products
        WHERE   client_id = ".$exp_by_id);

        return $query;
    }
        $.ajax({ 
            type: "GET", 
            dataType: "json", 
            url: "expenses/get_products_by_client_ajax/"+exp_by_id, 
            success: function(products) { 
                $.each(products,function(prod_id,prod_name) 
                { 
                    var opt = $('<option />'); 
                    opt.val(prod_id); 
                    opt.text(prod_name); 
                    $('#prod_id').append(opt); 
                }); 
            } 

        }); 
    return json_encode($prod_name);