PHP 및 AJAX - 코드 단순화
10446 단어 phpjavascriptajax
1단계 - 폴더/파일 구조
정리는 모든 응용 프로그램의 중요한 부분입니다. PHP 애플리케이션에서는 각 AJAX 요청에 대해 별도의 파일을 만드는 것이 좋습니다.
/
/ajax
...ajax handler files
더 정리해야 하는 경우 AJAX 파일을 그룹화할 수 있습니다.
/
/ajax
/posts
...posts files
/comments
...comments files
/misc
...misc files
2단계 - PHP + AJAX
AJAX의 경우 모든 데이터 구조를 사용할 수 있습니다. 하지만 JSON 을 선호합니다.
기본적으로 각 파일은 하나의 작업을 처리합니다. 그 작업은 성공하거나 실패할 수 있습니다. AJAX 요청의 JSON 응답에서 가장 중요한 키는 status
이며 Boolean 값을 갖습니다.
Handler 클래스를 만들어 봅시다. 저는 보통 /src
폴더에 클래스 파일을 저장합니다.
src/Ajax.php
<?php
class Ajax {
static function setJSONHeader() {
header('Content-type', 'application/json');
}
static function success($returnArray = null) {
$array = array (
'status' => true
);
if ($returnArray !== null) {
$array = array_merge($returnArray, $array);
}
self::setJSONHeader();
exit(json_encode($array));
}
static function error($errorMessage = '', $errorCode = 0) {
self::setJSONHeader();
exit(json_encode(array(
'status' => false,
'error' => $errorMessage,
'errorCode' => $errorCode
)));
}
}
이 클래스에는 세 가지static methods가 포함됩니다. Ajax::success($array)
요청이 성공하면 호출할 수 있습니다. $array
클라이언트 측에 보낼 더 많은 데이터를 포함할 수 있습니다. Ajax::error()
오류가 발생하면 호출할 수 있습니다.
3단계 - 모두 함께
이 모든 방법을 결합해 보겠습니다. 사용자가 게시물을 작성할 수 있는 앱이 있다고 가정합니다. 다음은 jQuery의 AJAX 요청 예입니다.
function createPost(title, text) {
$.ajax({
method: "POST",
url: "/ajax/create-post.php",
data: {
title, text // es6
},
dataType: "json", // gonna receive JSON
success: (json) => {
if (json.status === true) {
// enjoy!
location.href = `/${json.slug}`;
} else {
// oopz :(
alert(json.error);
}
}
})
}
create-post.php - PHP AJAX 핸들러
<?php
include_once 'autoload.php'; // your autoloader
// make sure you also do trim() and htmlspecialchars()
$title = $_POST['title'] ?? '';
$text = $_POST['text'] ?? '';
if (empty($title))
Ajax::error('Title cannot be empty');
if (empty($text))
Ajax::error('Text cannot be empty');
$slug = createSlug($title); // something to be sent to the client side
// add to database (thingengineer/mysqli-database-class)
$added = $mysqli -> insert('posts', array(
'title' => $title,
'text' => $text,
'slug' => $slug
));
if (!$added)
Ajax::error('Something went wrong on creating the post');
Ajax::success(array(
'slug' => $slug
));
이런 식으로 약간의 코드로 PHP에서 AJAX 핸들러를 작성할 수 있습니다. 트릭은 OOP을 사용하여 상태와 데이터를 처리하는 것입니다.
다음 PHP + AJAX 애플리케이션에 행운을 빕니다.
Reference
이 문제에 관하여(PHP 및 AJAX - 코드 단순화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/supunkavinda/php-and-ajax-the-only-complete-guide-46ee
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/
/ajax
...ajax handler files
/
/ajax
/posts
...posts files
/comments
...comments files
/misc
...misc files
AJAX의 경우 모든 데이터 구조를 사용할 수 있습니다. 하지만 JSON 을 선호합니다.
기본적으로 각 파일은 하나의 작업을 처리합니다. 그 작업은 성공하거나 실패할 수 있습니다. AJAX 요청의 JSON 응답에서 가장 중요한 키는
status
이며 Boolean 값을 갖습니다.Handler 클래스를 만들어 봅시다. 저는 보통
/src
폴더에 클래스 파일을 저장합니다.src/Ajax.php
<?php
class Ajax {
static function setJSONHeader() {
header('Content-type', 'application/json');
}
static function success($returnArray = null) {
$array = array (
'status' => true
);
if ($returnArray !== null) {
$array = array_merge($returnArray, $array);
}
self::setJSONHeader();
exit(json_encode($array));
}
static function error($errorMessage = '', $errorCode = 0) {
self::setJSONHeader();
exit(json_encode(array(
'status' => false,
'error' => $errorMessage,
'errorCode' => $errorCode
)));
}
}
이 클래스에는 세 가지static methods가 포함됩니다.
Ajax::success($array)
요청이 성공하면 호출할 수 있습니다. $array
클라이언트 측에 보낼 더 많은 데이터를 포함할 수 있습니다. Ajax::error()
오류가 발생하면 호출할 수 있습니다.3단계 - 모두 함께
이 모든 방법을 결합해 보겠습니다. 사용자가 게시물을 작성할 수 있는 앱이 있다고 가정합니다. 다음은 jQuery의 AJAX 요청 예입니다.
function createPost(title, text) {
$.ajax({
method: "POST",
url: "/ajax/create-post.php",
data: {
title, text // es6
},
dataType: "json", // gonna receive JSON
success: (json) => {
if (json.status === true) {
// enjoy!
location.href = `/${json.slug}`;
} else {
// oopz :(
alert(json.error);
}
}
})
}
create-post.php - PHP AJAX 핸들러
<?php
include_once 'autoload.php'; // your autoloader
// make sure you also do trim() and htmlspecialchars()
$title = $_POST['title'] ?? '';
$text = $_POST['text'] ?? '';
if (empty($title))
Ajax::error('Title cannot be empty');
if (empty($text))
Ajax::error('Text cannot be empty');
$slug = createSlug($title); // something to be sent to the client side
// add to database (thingengineer/mysqli-database-class)
$added = $mysqli -> insert('posts', array(
'title' => $title,
'text' => $text,
'slug' => $slug
));
if (!$added)
Ajax::error('Something went wrong on creating the post');
Ajax::success(array(
'slug' => $slug
));
이런 식으로 약간의 코드로 PHP에서 AJAX 핸들러를 작성할 수 있습니다. 트릭은 OOP을 사용하여 상태와 데이터를 처리하는 것입니다.
다음 PHP + AJAX 애플리케이션에 행운을 빕니다.
Reference
이 문제에 관하여(PHP 및 AJAX - 코드 단순화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/supunkavinda/php-and-ajax-the-only-complete-guide-46ee
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
function createPost(title, text) {
$.ajax({
method: "POST",
url: "/ajax/create-post.php",
data: {
title, text // es6
},
dataType: "json", // gonna receive JSON
success: (json) => {
if (json.status === true) {
// enjoy!
location.href = `/${json.slug}`;
} else {
// oopz :(
alert(json.error);
}
}
})
}
<?php
include_once 'autoload.php'; // your autoloader
// make sure you also do trim() and htmlspecialchars()
$title = $_POST['title'] ?? '';
$text = $_POST['text'] ?? '';
if (empty($title))
Ajax::error('Title cannot be empty');
if (empty($text))
Ajax::error('Text cannot be empty');
$slug = createSlug($title); // something to be sent to the client side
// add to database (thingengineer/mysqli-database-class)
$added = $mysqli -> insert('posts', array(
'title' => $title,
'text' => $text,
'slug' => $slug
));
if (!$added)
Ajax::error('Something went wrong on creating the post');
Ajax::success(array(
'slug' => $slug
));
Reference
이 문제에 관하여(PHP 및 AJAX - 코드 단순화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/supunkavinda/php-and-ajax-the-only-complete-guide-46ee텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)