Подробнее о ООП (объектно-ориентированное программирование) необходимо узнать более подробно. Возможно, поиск инъекций зависимостей или исключений. Кроме того, вам нужно создать PHP-скрипт, который принимает ваши запросы ajax и вызывает необходимые функции или методы, которые должны быть разделены на собственные файлы и классы. Это будет разделять разные уровни данных друг от друга (т. Е. Представление, бизнес-логика, данные). Вы также должны потратить некоторое время на изучение того, что такое MVC (Model View Controller). Это поможет понять важность разделения.
На данный момент я покажу вам быстрое решение вашей проблемы. Препятствует представьте структуру файла все в том же каталоге, например:
|--- ajax_requests.php
|--- Database.php
|--- Functions.php
|--- index.php
index.php где/JQuery находится ваш HTML:
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<title>Admin check</title>
<meta charset="UTF-8">
</head>
<body>
<script type='text/javascript'>
$.ajax({
type: "post",
url: "ajax_requests.php",
data: {request: "get_grupy_json"},
success: function(result){
console.log(result);
}
});
</script>
Обратите внимание, как мы используем Jquery сделать наш запрос Ajax. Мы делаем запрос post
к файлу ajax_requests.php
, отправляя get_grupy_json
в качестве нашего параметра request
. Никакие SQL-запросы не должны присутствовать в ваших интерфейсных представлениях.
ajax_requests.php получает запрос, получает объект базы данных и отправляет его в функцию объект, то он проверяет, что запрос существует как метод класса функций, если это произойдет, он запускает метод и повороты результат в формате JSON (не забудьте добавить проверку ошибок по своему усмотрению):
<?php
if (!empty($_POST)) {
$method = $_POST['request'];
include 'Database.php';
include "Functions.php";
$db = new Database();
$functions = new Functions($db);
if (method_exists($functions, $method)) {
$data = $functions->$method();
header('Content-Type: application/json');
echo json_encode($data);
}
}
functions.php
class Functions
{
private $db;
public function __construct(Database $db)
{
$this->db = $db;
}
public function get_grupy_json()
{
$query = "SELECT * FROM `grupy`";
$result = $this->db->dataQuery($query);
return $result->fetchAll();
}
}
database.php
class Database
{
private $conn = null;
public function __construct()
{
try {
$username = "root";
$password = "root";
$servername = "localhost";
$dbname = "test";
$this->conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
trigger_error("Error: " . $e->getMessage());
}
}
public function dataQuery($query, $params = array())
{
try {
$stmt = $this->conn->prepare($query);
$stmt->execute($params);
return $stmt;
} catch (PDOException $e) {
trigger_error("Error: " . $e->getMessage());
};
}
}
Это грубый макет того, что я хотел бы сделать. Надеюсь, вы поняли, как все это разделено, чтобы вы могли легко добавлять функции в свое приложение по мере его роста.
Я думаю, что вы смешиваете серверный и клиентский код. Вы не хотите иметь какие-либо запросы или информацию о подключении в своем коде на стороне клиента (например, вы здесь). Если вы хотите получить данные через Javascript, то да, вы правы, вы должны использовать какой-то вызов AJAX для веб-службы. Затем веб-служба будет размещать ваш запрос в базе данных. Я определенно рекомендую сделать некоторые исследования в AJAX и веб-сервисах. – xboxremote