2014-04-25 9 views
-1
function deleteUser() 
{ 
    var arr = new Array(); 
    $("input:checkbox[name=ids]:checked").each(function(){ 
     arr.push($(this).val()); 
    }); 

    var arr = $.parseJSON(arr); 

    $.ajax({ 
     type: "POST", 
     url: "<?php echo base_url('/AdminCP/Users/delete'); ?>", 
     data: {'users': arr}, 
     dataType: "json", 
     success: function(data){ 
      $("body").append(data); 
     } 
    }); 
} 

나는이 프로젝트를 개발 중이다. 나는 "Uncaught SyntaxError : 예기치 않은 입력의 끝"을 얻는다. 함수가 실행될 때 오류가 발생한다.잡히지 않은 SyntaxError : 예기치 않은 입력의 끝

아이디어가 있으십니까?

+3

. 이 함수는 문자열에서 JSON 표기법을 구문 분석하기위한 것입니다. – Pointy

+0

var'arr'이 이미 정의되어 있습니다. 그것을 다시 정의 할 필요가 없습니다. 또한 배열을 JSON 문자열로 변환하려면 [JSON.stringify] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)를 사용하십시오. – Moob

답변

3

나는 당신이 의미 있다고 생각 :

var arr = JSON.stringify(arr); // converts your array to json 

$.parseJSON는 JSON을 구문 분석하고 당신에게 JS 객체를 제공합니다.

+0

downvoter, 오타를 만들었습니다. 문자열이 –

+0

고쳐 졌음에 틀림 없습니다. 당신의 새로운 이론은 그럴듯 해 보입니다. –

+0

글쎄, 그는 * 할 수도 있지만 사용자 배열이 하나의 JSON 문자열 매개 변수로 전달되게합니다. 그러나 JSON을 전혀 사용하지 않고 직접 배열을 전달하면 jQuery는 각 배열 요소에 대해 별도의 HTTP 매개 변수를 작성합니다. 올바른 방법은 물론 서버 측 코드에 따라 다릅니다. – Pointy

0

당신은 어느 정도 단순화 할 수 있습니다 : 그것은`$ .parseJSON()`자바 스크립트 객체로 호출하는 이해가되지 않습니다

function deleteUser() 
{ 
    var postData = $("input:checkbox[name=ids]:checked").serialize(); 

    $.ajax({ 
     type: "POST", 
     url: "<?php echo base_url('/AdminCP/Users/delete'); ?>", 
     data: postData, 
     dataType: "json", 
     success: function(data){ 
      $("body").append(data); 
     } 
    }); 
} 
관련 문제