2011-07-25 2 views
0

mysqp 데이터베이스에서 가져온 뉴스 페이지의 의견을 표시하는 데 fancybox 모달을 사용하고 있습니다. 모달에는 사용자가 새로운 설명을 게시 할 수있는 섹션도 있습니다. jquery를 사용하여 양식 정보를 다른 스크립트로 보내 처리합니다.Javery ajax가 모달로 새로 고침을하지 않습니다.

성공적인 메시지를 반환하는 대신 정보를 게시하고 모달에 정보를 표시하는 대신 페이지로 리디렉션합니다. 여기

이런 일이 발생할해야 jQuery의 :

$(document).ready(function(){ 
$("#submit").click(function() { 
/* Set some vars */ 
         var messageText = $("textarea#message").val(); 
         var newsID = $("hidden#newsid").val(); 


         $.post('/process/newmsg.php', 
          { message : messageText, newsid: newsID }, 
          function(data) { 
           $("#fancybox_content").before(data); 
          } 
         ); 



}); 

});

내가 여기에 무엇을 놓치고 있는지 알 수 있습니까?

답변

1

이것은 유효한 선택자가 아닙니다 : $ ("hidden # newsid"). 그래서, "newsID는"비어 있고 포스트 매개 변수 $ ("#의 fancybox_content") HTML (데이터)를 시도 구문 오류를

{ message : messageText, newsid: }, 
+0

유효한 선택기 또는 아닙니다, php 원본에게 newsid를 보내고있다. 그것은 성공적으로 데이터베이스에 추가됩니다. 같은 페이지에 메시지를 표시하지 않습니다. – Eric

+0

물론 그렇습니다. 어쨌든

(표시되지 않음)이 제출 되었기 때문에 클릭 이벤트의 전파를 중지해야합니다. 클릭 핸들러에서 false를 반환하면 스크립트가 어떤 newsid도받지 못한다는 것을 알 수 있습니다. – Claudio

0

을 제공합니다.;

before()는 fancybox_content 내부에 결과를 넣지 않으므로 앞에 넣습니다.

또한 결과가 머리와 모든 것을 포함하는 전체 HTML 문서 인 경우 문제가 발생할 수 있습니다. 먼저 결과를 구문 분석해야합니다.

0

#submit이 제출 단추라고 가정하면 해당 단추의 양식을 제출하는 기본 동작을 취소해야합니다. 클릭 핸들러 함수에서 false를 반환하거나 e.preventDefault()을 사용하십시오.

관련 문제