0

我的数据库查询中有以下字段:

REPLACE(ProductCode,concat((width*1000),(thickness*1000),REPLACE((convert(varchar,convert(decimal(8,1),length))),'.','')),'') as grade,

然后从 codeigniters 模型和控制器返回到视图:

模型:

function get_skugrade_grade($q)
{
    $Query="select
              min(grade) as family
            from (SELECT
                    REPLACE(ProductCode,concat((width*1000),(thickness*1000),REPLACE((convert(varchar,convert(decimal(8,1),length))),'.','')),'') as grade,                     
                  FROM database.dbo.ProductList) as p
            where Options like '%$q%'";
    $result = $this->db->query($Query)->row();
    return $result->family;
}

控制器

function get_skufamily_grades(){
    $this->load->model('Sales_model');
    if (isset($_POST['data'])){
        $q = strtolower($_POST['data']);
        $viewData   =   $this->Sales_model->get_skugrade_grade($q);
        $data_json = json_encode($viewData);
        echo $data_json;
    }
}

查看请求:

$.post('get_skufamily_grades', {data:selectedObj.value},function(result) 
 { 
 $('input[name^="skugrade_1"]').val(result);
 });

视图的输出是"CR". 如何删除两个撇号""

数据库结果简直了CR。我认为我的 jquery / json 添加了这些,因为它不是返回的数字。

当前服务器响应

在此处输入图像描述 一如既往地感谢。

4

1 回答 1

1

""由 json 编码添加的,有效的 json 格式是{ "key" : "value" }键和值包含在其中"的值,而不是NumberBoolean

如果您将 ajax 请求配置为处理 json 请求,则可以解决此问题,使用dataType: "json"

更新
我不是 PHP 人,仍然尝试类似

function get_skufamily_grades(){
    $this->load->model('Sales_model');
    if (isset($_POST['data'])){
        $q = strtolower($_POST['data']);
        $viewData   =   $this->Sales_model->get_skugrade_grade($q);

        $arr = array('family' => $viewData);
        echo json_encode($arr);
    }
}

然后将ajax请求更改为

$.post('get_skufamily_grades', {
    data : selectedObj.value
}, function(result) {
    $('input[name^="skugrade_1"]').val(result.family);
}, 'json');
于 2013-04-23T11:00:50.140 回答