2011-03-24 4 views
1

jquery의 AJAX를 통해 양식의 별도 입력 필드에 배열 요소를 침투하려고합니다.jquery는 AJAX의 json_encoded 배열을 사용합니다.

Heres는 내 자바 스크립트 코드 :

 $('#based').change(function() { 
     if ($(this).val().length > 0) 
     {   
      $.ajax({ 
       type: "POST", 
       url: "ajax.php", 
       data: "id="+$(this).val(), 
       success: function(data){ 
        if (data != 'error') 
        {      
         $('#keyword').val(data[2]); 
         $('#keyword_slug').val(data[3]); 
        } 
       } 
      }); 
     } 
    }); 

Heres는 'ajax.php'내 PHP 코드 : 작동하지

$sql = mysql_query("select * from `keywords` where `id`='".mysql_real_escape_string($_POST['id'])."'"); 

if (mysql_num_rows($sql) == 0) 
{ 
    echo 'error'; 
} 
else 
{ 
    while ($row = mysql_fetch_assoc($sql)) 
    { 
     foreach ($row as $k => $v) 
      $data[] = $v; 
    } 

    echo json_encode($data); 
} 

그것. 내가 여기서 뭘하니? serializeArray를 살펴 보았지만 제대로 작동하려면 아무 것도 얻을 수 없습니다.

+0

반환 배열은 어떻게 생겼습니까? – alex

+0

서버 및 클라이언트에서도 데이터 배열의 길이를 인쇄 할 수 있습니까? – allthenutsandbolts

+0

POST가 무엇입니까? 정확히 어떤 스크립트가 반환됩니까? – bensiu

답변

2

JSON이 다시 나타날 경우 dataType: 'json'이 필요하다고 생각합니다.

그렇지 않으면 jQuery가 추측해야하며 콘텐츠 형식 application/json을 보내지 않으면 잘못 생각할 수 있습니다.

+0

그게 문제라면, PHP에서 이것을 수행하고'Content-Type' 헤더를'JSON'으로 설정하는 것이 더 낫습니다. –

+0

@cwolves 나는'application/json'을 희망합니다. 나는 또한 리턴 타입을 명시 적으로 기술하는 것을 선호한다. – alex

+0

그래, 두뇌 방귀 : –

관련 문제