PHP 실행 경로에서 오류를 반환합니다.에이잭스?
PHP 스크립트가 어딘가에서 실패했을 때 PHP가 AJAX 에러 코드를 반환하도록 하는 방법이 있습니까?튜토리얼에 따라 이것을 PHP에 입력했습니다.
$return['error'] = true;$return['msg'] = "DB에 연결할 수 없습니다";
JSON 데이터라는 걸 알기 전까지 모든 게 괜찮았어요표준 $_POST를 사용하여 오류를 반환하고 HTML 데이터를 반환하는 방법이 있습니까(예: jQuery의 AJAX를 트리거함).error:
이벤트?
jQuery에 대해서는 잘 모르지만 성공과 실패(HTTP 200 OK vs HTTP!= 200) Ajax 요청을 구별하는 경우 PHP 스크립트가 200이 아닌 HTTP 코드로 응답하기를 원할 수 있습니다.
if ($everything_is_ok)
{
header('Content-Type: application/json');
print json_encode($result);
}
else
{
header('HTTP/1.1 500 Internal Server Booboo');
header('Content-Type: application/json; charset=UTF-8');
die(json_encode(array('message' => 'ERROR', 'code' => 1337)));
}
$return = array();
$return['msg'] = "Could not connect to DB";
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
{
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
die(json_encode($return));
}
이거 한번 써보세요.도움이 됐으면 좋겠다.
<!-- This is index.php --->
<html>
<head>
<script src="js/jquery.js" type="text/javascript"></script><!-- link to jQuery -->
<script language="javascript">
$(document).ready(function () {
$('input#send').click(function(){
/* Empty div#error and div#result incase they contain info from the last submission */
$('#error').empty('');
$('#result').empty('');
/* Client-side validation */
var name = $("input#name").val();
var age = $("input#age").val();
if (name==''){
alert('Insert your name.');
}
else if (age==''){
alert('Insert your age.');
} else {
var params = 'name=' + name + '&age=' + age;
$.ajax({
url:'b.php',
type:'post',
dataType:'html',
data:params,
cache: false,
success:data
});
function data (html) {
var $html = $( html ); // create DOM elements in a jQuery object
/* Return errors from 'b.php' */
$html.filter('#err').appendTo("#error");
/* Return valid Post */
$html.filter('#res').appendTo("#result");
/* Clear name input */
$('input#name').val('');
/* Clear age input */
$('input#age').val('');
}
}
});
});
</script>
<style type='text/css'>
#error{
color:maroon;
font-weight:bold;
}
#result{
color:green;
font-weight:bold;
}
</style>
</head>
<body>
<div id="error"></div><!-- View Errors -->
<div id="result"></div><!-- View valid Post -->
<input type='text' name='name' id="name" value='' /><br/ >
<input type='text' name='age' id="age" value='' /><br/ >
<input type='submit' name='send' id="send" value='Send' />
</body>
<?php
/* This is b.php */
if(($_POST['name']=='')||($_POST['age']=='')){
$error = '<div id="err">Error: Fill in ALL fields.</div>';
} elseif(is_numeric($_POST['name'])){
$error = '<div id="err">Error: Name should NOT contain numbers.</div>';
} elseif(!is_numeric($_POST['age'])){
$error = '<div id="err">Error: Age should ONLY contain numbers.</div>';
} else{
$result = '<div id="res">Hi '.$_POST['name'].', you are '.$_POST['age'].' years old.</div>';
}
echo $error;
echo $result;
?>
PHP에서 AJAX로 데이터를 간단하게 전송하기 위해 Json 인코딩이나 키 값 쌍이 항상 필요한 것은 아닙니다.스트링 핸들링으로 간단하게 할 수 있습니다.
이 기능을 설명하는 샘플코드는 다음과 같습니다.
$sqli = "SELECT email FROM WHERE email = ' . mysqli _ real _ string _ string , $email )" "그리고 비밀번호 = ' . mysqli _ real _ string 、 $pass ) " ; $result = mysqli_mysqli,mysqli,messages,$messages); $row=mysqli_mysqli_rowsqlyresult); $row_cnt = mysqli_num_rows(결과); $s_email = $row[0]; ($row_cnt == 1)의 경우,$response="성공";} 기타 {$response = "비활성 자격 증명";} $syslog->close(); $_SESSION["email"]= $s_email;에코 $response;
이 코드는 '성공' 응답이 php 코드를 호출하는 ajax로 반환되는 방법을 보여줍니다.또한 ajax에서는 응답을 검색하기 위해 다음 작업을 수행할 수 있습니다.
$.ajax({ 유형: 'POST',),data: {email: $('#email').valvalval 비밀번호: $('#pass').val()}url : '삭제.php',성공: 함수(데이터) {if(data == '성공'){//php에서 에코된 값을 ajax의 데이터 변수에 저장할 수 있습니다.window.location.slocation.slocation'; }그렇지 않으면 {경보(데이터); }},오류: 함수( xhr ) {alert(에러); }});
위의 개념을 확장하여 MULTIPLE VALUES를 반환할 수도 있습니다.이 메서드를 사용하면 데이터를 문자열 형식으로 PHP에서 AJAX로 간단하게 전송할 수 있습니다.
php에서 ajax에 대한 응답으로 전송해야 하는 모든 것을 고유한 분리기로 구분하여 에코하는 간단한 단계를 따라야 합니다.
echo $response.#;echo $email.#;echo $password.#;"Hello"를 울립니다.#;에코 "세계";
그러면 위의 예시와 같이 Ajax의 변수 데이터를 간단히 검색할 수 있으며 다음과 같은 간단한 함수를 사용할 수 있습니다.
var res = data.timeout#");
데이터가 Ajax 내의 변수가 됩니다.res 배열은 js 내에서 필요한 용도로 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/4417690/return-errors-from-php-run-via-ajax
'IT' 카테고리의 다른 글
Facebook like 버튼을 사용하면 댓글 팝업이 사라지고 대신 "확인" 버튼이 나타납니다. (0) | 2023.02.14 |
---|---|
React.memo 구문 문제 대신 useMemo 사용 (0) | 2023.02.14 |
관리 페이지에서 페이지에 사용되는 Wordpress 템플릿 확인 (0) | 2023.02.10 |
서브디렉토리에서 앱을 처리하도록 create-react-app을 설정하려면 어떻게 해야 합니까? (0) | 2023.02.10 |
ORA-01843은 유효한 달이 아닙니다.비교일 (0) | 2023.02.10 |