2010-08-13 9 views
3

나는 codeigniter 프레임 워크를 사용하고 있으며 jquery를 사용하고있다. 이제 데이터베이스의 값을 포함하는 선택 상자가 하나 있습니다. 나는 jquery change event와 alert box를 사용하여 그것의 값을 테스트했다. 그 변화에 경고 상자에 정확한 값을주고,하지만 내가 게시물 메서드를 사용하거나 얻을 심지어 심지어 $ .ajax(), 그 어떤 출력을 제공하지 않습니다. 사실 나는 console.log()와 함께 점검했다. 난 그냥 일부 값을 게시하고 선택 상자 바로 아래에있는 div에 표시 할 데이터베이스에서 일부 정보를 얻을 필요가있다. 여기 대한 jQuery 코드이다 :jquery의 이상한 행동

$(document).ready(function(){ 
    $('#org_name').change(function(){ 
     $.post('index.php/contact/getorg',{'query':$('#org_name').val()},function(data){ 
     console.log("inside post"); 
     $('#showorg').html(data); 
     console.log(org_name); 
     });//close post function 
    }); //close org_name event function 
}); 
+0

선택 상자의 HTML 코드를 게시 할 수 있습니까? 양식 제출에 첨부 된 이벤트가 없으면 jQuery가 서버에 게시 된 데이터에 영향을 미치지 않아야합니다. –

+1

서버에서 페이지가 제대로 표시됩니까? "data"에 반환 된 내용은 html입니까? –

+0

@Ryan - 여기에서 발생하는 '

'제출물이 아니며 양식 제출자 핸들러가 있더라도'$ .post() '를 통해 AJAX 호출을 진행합니다. 성공을위한 '처리기. –

답변

1

난 항상 다음과 같은 스타일을 사용하고 ...

ajax({ 
    type: "POST", 
    url: 'index.php/contact/getorg', 
    data: JSON.stringify({'query':$('#org_name').val()}), 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    success: function (data) { 
     $('#showorg').html(JSON.parse(data.d)); 
    }, 
    error: showError 
}; 

function showError(responseText, statusText, xhr, $form) { 
      debugger;   } 

편집 :

또한 console.log(org_name); 줄이 올바르지 않은 것으로 보입니다. 회원 org_name은 어디에서 오는가?

+0

이것이 문제인 경우 단서가 없습니다. 어쩌면 당신의 URL은 친척입니까? '/index.php/contact/getorg'를 사용해보십시오. 또한 firefox와 firebug를 사용하여 xhr (아약스 요청)을 진단하십시오. 그러면 실제로 일어나는 일을 볼 수 있습니다. – Matthew

1

시도는 메소드 파라미터에 지정된 기능 장애 (error 변수)와 .ajax의 jQuery 방법을 사용한다. 뭔가 서버 측에서 잘못된 것 또는 다른 특정 오류가있는 경우, 당신은 XMLHttpRequest를, textStatus을 분석 할 수 있습니다 errorThrown 변수

0

답장을 보내 주셔서 감사합니다. 오류 콜백 방식이 도움이되었습니다. 그것은 404 메서드를 제공했다, 그래서 나는 URL을 바 꾸었습니다. 이제 매력처럼 작동합니다. 내가 한 모든 것을 당신과 함께 나누어 드리겠습니다.

$('#org_name').bind('change',function(){ 
    $("#showorg").html("wait..."); 
    $.ajax({ 
    url: 'http://localhost/ifes/index.php/contact/getorg', 
    type: 'POST', 
    dataType: 'html', 
    data:{'query':$('#org_name').val()}, 
    timeout: 1000, 
    error: function(xhr,err){ 
    alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status); 
    alert("responseText: "+xhr.responseText); 
    }, 
    success: function(data){ 
     $('#showorg').html(data);// do something with data 
    } 
    }); 
});