2012-06-25 2 views
0

내가 PHP 파일에 일부 데이터를 보낼 것이다 양식을 가지고, 다음 예를 일부 결과를 반환 :추가 견인 이벤트

<form action"<?php $_SERVER['PHP_SELF']?>" method="post" id="data"> 
    <input type"text" name="first_name"/> 
    <input type="text" name="last_name"/> 
</form> 

을 다음 내가 예로서 양식을 제출 clcik 이벤트를 잡을 원하는 자바 스크립트 :

$("#data").submit(function(){ 
some code ..... 
}); 

이것은 입력 양식을 PHP 파일에 제출하는 기본 동작을 방해합니다. 질문은 동일한 양식의 PHP 파일 및 동일한 시간 잡기 이벤트에 대한 양식 데이터를 보낼 수 있습니까?

참고 PHP 파일에서 반환 된 데이터가 다른 PHP에 의해 필요합니다 기능

+0

처럼 4 매개 변수에 JSONdataType를 지정하여 JSON 등의 반환 데이터를 처리 php. –

+0

'return data'가 다른'php function '에 의해 필요하다면, 왜 아약스 리턴으로 데이터를 보내기 전에 먼저 php 함수를 호출하고, 두번째 PHP 함수로부터'final output'을 리턴하십시오 , 아약스 응답으로. –

+0

@ 죠이, jquery로 결과를 보여주고 싶은 경우 jquery에서 콜백 함수를 통해 반환 된 데이터를 잡아서 그 결과를 표시 할 수 있지만 같은 페이지에서 PHP로 결과를 표시하려고 생각했습니다. 성능과 속도가 빠릅니다. 그렇습니까? –

답변

3

양식의 기본 동작은 당신이 좋아하는 event.preventDefault()를 사용해야합니다 (어떤 페이지를 다시로드입니다) 제출 방지하기 위해 이

$("#data").submit(function(event){ 
    event.preventDefault(); 
    //some code ..... 
}); 

그리고 상쾌한 페이지없이 php로 양식 데이터를 어떤 O를 사용하는 것이 필요 게시 F 당신의 PHP 스크립트는 당신이 jQuery를 PHP를 사용하여 content-Type 헤더를 설정하거나 강제 할 수 있습니다 json 형식으로 데이터를 반환하는 경우

$("#data").submit(function(event){ 
    event.preventDefault();// prevent page reload 
    // Now post the form using Ajax 
    // $(this).serialize() will return an array of all form fields as 
    //             name value pair 
    $.post('some_script.php',$(this).serialize(),function(data){ 
     // Just to check if everything is working well 
     console.log('Form Submitted Successfully.'); 
     // do whatever you want with the data 
    }); 
}); 

처럼 (HTTP POST 방법을 사용하여 양식 값을 보내드립니다) .post() 같은 jQuery의 사용 가능 ajax 방법 당신은 [아약스] (http://api.jquery.com/jQuery.ajax/)에 데이터를 보내는 데 사용할 필요가

$.post('some_script.php',$(this).serialize(),function(data){ 
     // Just to check if everything is working well 
     console.log('Form Submitted Successfully.'); 
     // do whatever you want with the data 
    },'json'); 
+0

경우에는 PHP 파일에서 반환 된 데이터를 처리하고 올바른 해결책이 될 자바 스크립트에 의해 데이터를 처리 할 필요가 없습니다, 제 경우에는 다시 PHP에서 반환 된 데이터를 확인하고 처리해야합니다! –

+0

@moata_u, 빠른 예제를 위해'console.log'를 추가했습니다. 성공 콜백에서 반환 된 데이터로 원하는 것을 할 수 있습니다. –

+0

좋아요, 당신은 다시 첫 번째 게시물의 성공 후 $. post (url, data, callback)를 사용하여 PHP 파일에 반환 된 데이터를 다시 전달할 수 있음을 의미합니다! –

0
$("#data").submit(function(e){ 
e.preventDefault(); 
$.post("<?php echo $_SERVER['PHP_SELF'] ?>",$(this).serialize(),function(r){ //Do Some Action }); 
}); 
+2

'e.preventDefault()' –

+2

그들은 또한 개별적으로 나열하지 않고'$ (this) .serialize()'를 사용하여 양식의 모든 입력을 얻고 자 할 것입니다. –

+0

괜찮습니까? 내 편집 –