2017-06-09 8 views
0

非常にシンプルですが、jsonレスポンスを解析しようとすると、ajaxの成功結果に不明なエラーが表示されます。エラーメッセージ: ビュー:jsonレスポンスの解析時にAjax呼び出しエラーが発生しました。 codeigniter

function getUsertype(){ 
      var region= $('#regionSel option:selected').text(); 

       $.ajax({ 
        type:"GET", 
        url: "<?php echo base_url('Pricecomparison/getUsertype'); ?>", 
        data:{ "region":region}, 
        contentType: "application/json", 
        datatype: "json", 
        success: function(result){ 
         //parsedobj = JSON.parse(result); 
         console.log(result); 
         parsedobj = JSON.parse(result); 

         var appenddata="<option value = '0'>Select User Type</option>"; 
         var appendmetertype; 
         if (parsedobj.reg) 
         { 
          $.each(parsedobj.reg, function(index, value) 
          { 
           appenddata += "<option value = '" + value.usertype + "'>" + value.usertype + " </option>";  
          }); 
          $('#usertypeSel').html(appenddata); 
         } 
         else 
         { 
          $('#usertypeSel').html(appenddata); 

          for (i=0; i<=4; ++i){ 
           appendmetertype="<option value = '0'>Select Meter Type "+i+"</option>"; 
           $("#MeterTypeVar"+i+"Sel").html(appendmetertype); 
          } 
         } 
        }, 
        error: function(xhr, textStatus, error){ 
         console.log(xhr.statusText); 
         console.log(textStatus); 
         console.log(error); 
        } 
       }); 
      } 

コントローラー:

function getUsertype() 
{ 
    $this->load->model('Settings_model'); 
    $region = $this->input->get('region'); 

    $result = array("reg" => $this->Settings_model->getSelectedUsertype($region)); 
    print_r($result); 
    echo json_encode($result);  
} 

モデル:

public function getSelectedUsertype($region) 
    { 
     #Create main query 
     $this->db->select('usertype'); 
     $this->db->where('region', $region); 
     $this->db->group_by('region','usertype'); 
     $q = $this->db->get('res_price'); 

     if ($q->num_rows()> 0) 
     { 
      return $q->row(); 

     } 
    } 
にSyntaxError:JSON.parse:JSONデータの行1列1 を参照してくださいコードの下での予期しない文字

ajaxの応答:

Array 
    (
     [reg] => stdClass Object 
     (
     [usertype] => LOW - GS20 
     ) 
    ) 
     {"reg":{"usertype":"LOW - GS20"}} 

答えて

2

コントローラでこれを削除します。 PHPオブジェクトとJSONオブジェクトを出力していますが、AjaxはJSONオブジェクトだけを読み込みます。

print_r($result); 

あなたがデータ型を指定した場合:JSONを、あなたはそれをJSONを与える必要があります。私は何かが欠けていない限り、

また、あなたはこれを必要としない:

parsedobj = JSON.parse(result); 

あなたはそれを解析することなく、あなたのオブジェクトを使用することができます。

+1

ああ、私は愚かな間違いをすることを期待していました。ありがとうCallombert。 – Danish

関連する問題