PHP 5.3을 사용하는 로컬 Apache 2.2 서버에서 jQuery ajax 게시 메소드를 테스트하고 있습니다 (완전히 새로운 기능). 다음은 같은 폴더에있는 모든 파일입니다.PHP로 게시하는 Ajax
HTML 바디 (jQuery 라이브러리 헤드 포함)
<form id="postForm" method="post">
<label for="name">Input Name</label>
<input type="text" name="name" id="name" /><br />
<label for="age">Input Age</label>
<input type="text" name="age" id="age" /><br />
<input type="submit" value="Submit" id="submitBtn" />
</form>
<div id="resultDisplay"></div>
<script src="queryRequest.js"></script>
queryRequest.js
$(document).ready(function(){
$('#s').focus();
$('#postForm').submit(function(){
var name = $('#name').val();
var age = $('#age').val();
var URL = "post.php";
$.ajax({
type:'POST',
url: URL,
datatype:'json',
data:{'name': name ,'age': age},
success: function(data){
$('#resultDisplay').append("Value returned.<br />name: "+data.name+" age: "+data.age);
},
error: function() {
$('resultDisplay').append("ERROR!")
}
});
});
});
post.php
<?php
$name = $_POST['name'];
$age = $_POST['age'];
$return = array('name' => $name, 'age' => $age);
echo json_encode($return);
?>
두 필드를 입력하고 누르면 '제출 ', 성공 메서드는 텍스트 추가, 호출되지만 아약스 게시물에서 반환 된 값은 정의되지 않습니다.
초 후에 텍스트 필드가 비워지고 div에 추가 된 텍스트가 사라집니다. 그것은 빈 페이지 플래시가 없기 때문에 페이지 리프레쉬 인 것처럼 보이지 않습니다.
여기 무슨 일 이니? 어리석은 실수라고 확신하지만 방화범이 끌리지는 않습니다.
는UPDATE :
는파이어 버그 그물을 확인 후, 그것은 POST 반환 상태가 200임을 보여 주지만이 예상 JSON 객체의 3 시간을 반환
{"name":"asd","age":"123"}{"name":"asd","age":"123"}{"name":"asd","age":"123"}
여기에 'exit'를 두는 것은 어때요? echo'json_encode ($ return); exit;?>' –
@Shakti Singh : 그다지 좋지는 않을 것이다 ... 'echo'는 이미 마지막 명령이다 – nico
그냥 내 대답을 편집했다. 내 dev 환경에서 작동하지 못하게하는 코드에서 오타가 있음을 발견했습니다. – DKSan