【问题标题】:remove apostrophe from json returned sql data + codeigniter从 json 返回的 sql 数据中删除撇号 + codeigniter
【发布时间】:2013-04-23 10:57:25
【问题描述】:

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

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 添加了这些,因为它不是返回的数字。

当前服务器响应

一如既往的感谢。

【问题讨论】:

  • ""是json编码添加的
  • 你也可以分享你的ajax请求吗
  • 感谢 Arun,根据您的要求添加到问题中。
  • get_skufamily_grades返回的值是什么,是简单的字符串还是对象

标签: jquery json codeigniter


【解决方案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');

【讨论】:

  • 感谢阿伦,感谢。我的 ajax 请求/vview 请求已添加到问题中。你能用我的语法来校准吗?再次感谢。
  • 谢谢阿伦,仍然通过“”。我编辑了问题以显示服务器响应
  • $.post('get_skufamily_grades', {data : selectedObj.value}, function(result) { result = result.replace('"', ''); result = result.replace('"', ''); $('input[name^="skugrade_1"]').val(result);}, 'text'); 可以解决问题,但我认为这不是最佳选择?
  • @Smudger 不,不是,您需要修复根本原因
  • @Smudger 尝试更新,同时使用浏览器开发工具栏检查响应字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 2021-07-18
相关资源
最近更新 更多