비슷한 경우에 대해 여러 스레드를 읽었지만 지금도 올바르게 수행 할 수 없습니다.ajax form submit -> php에서 respone 받기
내가 원하는 작업 기본적으로 사용자가 로그인 (간단히 데이터베이스에 쿼리)을 변경할 수있는 양식이 있습니다. PHP 스크립트는 다음과 같습니다
if(isset($_POST['login'])) {
$doEdit = $user->editData("login", $_POST['login']);
if($doEdit) {
$result = displayInfobox('success', 'Good!');
} else {
$result = displayInfobox('warning', 'Bad!');
}
} else {
$error = 'Bad!';
echo $error;
}
displayInfobox 클래스 즉 성공과 내용으로 단지 사업부입니다 - 좋은!
지금이 양식을 AJAX로 보내고 페이지를 다시로드하지 않고 $ result를 표시하고 싶습니다.
HTML :
<form id="changeLogin" method="post" class="form-inline" action="usercp.php?action=editLogin">
<label for="login">Login:</label><br />
<div class="form-group ">
<input type="text" class="form-control" name="login" id="login" required>
<input type="submit" value="Zmień" class="btn btn-primary">
</div>
</form>
그리고 finnally - 내 JQuery와/아약스 :
$("#changeLogin").submit(function(e) {
var postData = $(this).serializeArray();
var formURL = $(this).attr("action");
$.ajax({
url: formURL,
type: "POST",
data: postData,
success: function(result) {
alert(result);
},
error: function(response) {}
});
e.preventDefault();
});
$("#changeLogin").submit();
내가두면 "성공"빈, 작동 -> 양식 아약스에 의해 제출, 로그인이 변경되었지만 결과 메시지가 표시되지 않습니다. 그렇지 않으면 전체 페이지가 다시로드됩니다. 또한 F5를 누르면 양식이 다시 제출됩니다 (Ajax에서도).
은 두 번째'$ ("# changeLogin")입니다. 코드에서 submit(); – Jeff
또한 html-form에서'action'을 정의한 다음 거기에서 그것을 가져올 필요가 없습니다. 그것을 비워두고 js에 url을 설정하십시오. – Jeff