>source

현재 AJAX 호출로 선택 콘텐츠를 로드하려고 합니다. 이를 위해 컨트롤러에 요청을 보내고 응답을 반환하는 AJAX가 있습니다. 이제 이것은 응답을 반환하지만 다음과 같은 오류도 표시됩니다.JSON.parse: JSON 데이터의 1행 2열에 예기치 않은 문자가 있습니다.. 콘솔에 표시되는 내용은 다음과 같습니다.

이제 이를 달성하기 위해 사용하는 code는 다음과 같습니다.

콘솔 로그 이미지

클래스 보기:

<label for="code" class="control-labels text-nowrap mr-3">Search Contacts</label><input id="owners"  name="owners_det" list="owners_list" placeholder="Start typing to show contacts" value="<?php echo $owner_details; ?>" type="text"><input type="hidden" name="owners_id" id="owners_id" value="<?php echo $owner_id; ?>" /><datalist id="owners_list"></datalist>

아약스:

function getcontacts(obj){
  var dataString= new Object();
  $.ajax({
        type: "GET",
        dataType:"json",
        url: "<?php echo site_url('listings/getContacts'); ?>/"+obj,
        success: function(response){
            console.log(response);
            var responseText= JSON.parse(response);
            $('#owners_list').html(responseText,data);
        }
    });
}

컨트롤러 클래스:

public function getContacts($id){
    $option= "<option value='0'>Select</option>";
    $modelList= $this->listings_model->get_contact('firstname,lastname,mobile,email,agents_id,title,id,refno');
    foreach($modelList as $m){
        $option .= "<option value='".$m['firstname']." ".$m['lastname']." -".$m['refno']."' id='".$m['id']."'>".$m['firstname']." ".$m['lastname']." -".$m['refno']."</option>";
    }
    $data= array(
        'data'=> $option
    );
    echo json_encode($data);
}

데이터 항목에 사용할 수 없는 문자가 있고 데이터가 너무 커서 해당 문자를 찾으려고 합니다. 그래서 이것을 대신 JSON 형식으로 변환할 수 있는지 생각하고 있었습니다.

컨트롤러에서 html 마크업을 바로 가기로 생성하는 것을 지지하지 않습니다. jquery/js 보기에서 데이터를 반복하여 옵션을 빌드합니다. 이를 위한 전용 구문이 있습니다. 옵션의 텍스트를 값 속성으로 복제하는 것은 이점이 없습니다. 마크업 팽창을 제거하기만 하면 됩니다. id는 실제로 data-id를 원하십니까? 옵션을 id하는 것은 이례적입니다. 디버깅 세부 정보를 텍스트로 제공하십시오. code를 손상시키는 생성된 데이터는 무엇입니까?

mickmackusa2021-11-27 05:54:11

불필요해 보이는 JSON.parse()를 제거해 보십시오. response.data에 직접 액세스해 보십시오.

mickmackusa2021-11-27 05:54:11

dataType:"json"이 있고 JSON.parse를 호출합니다. 함께 사용해서는 안됩니다. js 객체 속성에 액세스하는 것은 쉼표가 아닌 점으로 수행됩니다.

mickmackusa2021-11-27 05:54:11

마지막으로 html의 id 속성과 관련된 for="code"가 표시되지 않습니다. 기존 ID를 가리키도록 조정해야 할 수도 있습니다.

mickmackusa2021-11-27 05:54:11
  • 이전 매년 이벤트 발생 횟수를 계산하는 Python Pandas
  • 다음 변수 c# .net core가 있는 수학 방정식으로 변환할 문자열이 주어집니다.