2010-11-23 7 views
0

저는 백그라운드에서 세 개의 변수를 보내고 웹 사이트를 새로 고치지 않고 자체 대신 텍스트를 표시하는 ajax (jQuery 또는 기타 프레임 워크) 양식을 찾고있었습니다.Ajax 문의 양식

예 : 위의

http://net.tutsplus.com/demos/contactform/

예 자습서와 함께 제공됩니다,하지만 불행히도 그것을위한 PHP 백엔드 그래서 나는 다른 것을 찾고 있어요 작동하지 않습니다.

마음에 무엇이 있습니까? 또는 jQuery 초보자를위한 팁을 토대로 빌드하는 방법은 무엇입니까?

이 같은 요청은 여기에 금지 나는이 스크립트를 사용하여 변수를 보내는 방법을 물어보고 싶은 경우 :

$.ajax({ 
    type: "POST", 
    url: "bin/process.php", 
    data: dataString, 
    success: function() { 
    $('#contact_form').html("<div id='message'></div>"); 
    $('#message').html("<h2>Contact Form Submitted!</h2>") 
    .append("<p>We will be in touch soon.</p>") 
    .hide() 
    .fadeIn(1500, function() { 
     $('#message').append("<img id='checkmark' src='images/check.png' />"); 
    }); 
    } 
}); 
return false; 

백엔드를 위해? 내 bin/process.php 파일을 가지고 오랫동안 싸워 왔지만 아무것도 성공하지 못했습니다 ("성공"jQuery 스크립트의 일부는 결코 발생하지 않습니다).

고마워요.

+1

'bin/process.php'를 게시 할 수 있습니까? – Alex

+1

나쁜 애니메이션을 피하기 위해서 시작 부분에'# message'를 숨기고 페이드 인에서 콜백 할 때'# contact_form'의 html을 바꾸는 것이 이상적입니다. – Fred

+0

원본 파일을이 패키지 (http://net.tutsplus.com/demos/contactform/demo.zip)에서 수정하려고 시도했지만 작동하지 않는 것 같습니다. 그런 다음 내 자신의 파일을 보았습니다. http://jsfiddle.net/d2Z3R/, 내 스크립트에서 $ Body = $ message를 유감스럽게 생각하며 스크립트의 핵심을 보여주기 위해 몇 줄의 본문 만 잘라 냈습니다. @ 프레드, 감사합니다.하지만 지금 가장 큰 걱정은 백엔드가 전혀 작동하지 않는다는 것입니다. – fomicz

답변

0

bin/process.php가 존재하면 "success"가 실행되고 어떤 결과가 출력됩니다. 데이터를 $_POST에서 사용할 수 있으므로 양식 제출 처리기 (예 : AJAX 포함 또는 제외)를 작성하는 방식으로 process.php을 작성할 수 있습니다.

그런 다음 프런트 엔드 페이지에 contact_form 요소 (<div id="contact_form">)가 있으면 결과를 확인해야합니다.

0

PHP에 echo '(something)';을 추가해야 작동 할 수 있습니다. 당신은 더 나은 애니메이션 다음에 JS를 변경해야합니다 :

$.ajax({ 
    type: "POST", 
    url: "bin/process.php", 
    data: dataString, 
    success: function() { 
    $('#message').hide(data) 
    .html("<h2>Contact Form Submitted!</h2>") 
    .append("<p>We will be in touch soon.</p>")  
    .fadeIn(1500, function() { 
     $('#message').append("<img id='checkmark' src='images/check.png' />"); 
     $('#contact_form').html("<div id='message'></div>"); 
    }); 
    } 
}); 
return false; 

변수를 전달하려면 'key1=bob&key2=bob2' (문자열) 또는 사전 중 하나에 dataString을 설정해야합니다 - {key1:'bob', key2:'bob2'}. 자세한 내용은 jQuery ajax documentation을 참조하십시오.

echo 메시지를 변경 한 다음 성공 함수에 if .. else 문을 추가하여 오류 처리를 추가 할 수도 있습니다. 당신은 또한 JSON을 사용할 수 있지만, 이것에 대해서는 과잉이다.