jQuery 를 사용하여 Ajax 요청을 작성하려면 다음 코드로이를 수행 할 수 있습니다.
HTML :
<form id="foo">
<label for="bar">A bar</label>
<input id="bar" name="bar" type="text" value="" />
<input type="submit" value="Send" />
</form>
<!-- The result of the search will be rendered inside this div -->
<div id="result"></div>
자바 스크립트 :
방법 1
/* Get from elements values */
var values = $(this).serialize();
$.ajax({
url: "test.php",
type: "post",
data: values ,
success: function (response) {
// You will get response from your PHP page (what you echo or print)
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
방법 2
/* Attach a submit handler to the form */
$("#foo").submit(function(event) {
var ajaxRequest;
/* Stop form from submitting normally */
event.preventDefault();
/* Clear result div*/
$("#result").html('');
/* Get from elements values */
var values = $(this).serialize();
/* Send the data using post and put the results in a div. */
/* I am not aborting the previous request, because it's an
asynchronous request, meaning once it's sent it's out
there. But in case you want to abort it you can do it
by abort(). jQuery Ajax methods return an XMLHttpRequest
object, so you can just use abort(). */
ajaxRequest= $.ajax({
url: "test.php",
type: "post",
data: values
});
/* Request can be aborted by ajaxRequest.abort() */
ajaxRequest.done(function (response, textStatus, jqXHR){
// Show successfully for submit message
$("#result").html('Submitted successfully');
});
/* On failure of request this function will be called */
ajaxRequest.fail(function (){
// Show error
$("#result").html('There is error while submit');
});
.success()
, .error()
그리고 .complete()
콜백의로 사용되지 않습니다 jQuery를 1.8 . 그들의 궁극적 인 제거를위한 코드를 준비하려면, 사용 .done()
, .fail()
및 .always()
대신.
MDN: abort()
. 요청이 이미 전송 된 경우이 메소드는 요청을 중단합니다.
이제 Ajax 요청을 성공적으로 보냈으며 이제 서버로 데이터를 가져갈 차례입니다.
PHP
우리는 Ajax 호출 (에서 POST 요청을 따라 type: "post"
), 우리는 지금 잡아 데이터 중 하나를 사용 할 수 있습니다 $_REQUEST
또는 $_POST
:
$bar = $_POST['bar']
POST 요청에서 얻는 것을 간단히 볼 수도 있습니다. BTW, 설정되어 있는지 확인하십시오 $_POST
. 그렇지 않으면 오류가 발생합니다.
var_dump($_POST);
// Or
print_r($_POST);
그리고 당신은 데이터베이스에 값을 삽입하고 있습니다. 조회를 작성하기 전에 모든 요청 (GET 또는 POST를 작성했는지 여부)을 올바르게 감지 하거나 이스케이프 했는지 확인하십시오 . 가장 좋은 것은 준비된 진술을 사용하는 것 입니다.
그리고 데이터를 다시 페이지로 되돌리려면 아래와 같이 해당 데이터를 에코하면됩니다.
// 1. Without JSON
echo "Hello, this is one"
// 2. By JSON. Then here is where I want to send a value back to the success of the Ajax below
echo json_encode(array('returned_val' => 'yoho'));
그리고 당신은 그것을 얻을 수 있습니다 :
ajaxRequest.done(function (response){
alert(response);
});
몇 가지 속기 방법이 있습니다. 아래 코드를 사용할 수 있습니다. 같은 작업을 수행합니다.
var ajaxRequest= $.post("test.php", values, function(data) {
alert(data);
})
.fail(function() {
alert("error");
})
.always(function() {
alert("finished");
});