Я кодирую бэкэнд проекта и в модуле, который я пытаюсь реализовать, мне нужно управлять пользователями, например, получить все данные из таблицы Users, а также получить просто например, данные относительно выбранного пользователя, используя входной текст. Он также должен иметь возможность обновлять и удалять записи.Операции DB с AJAX в архитектуре MVC
Итак, я уже закодировал все функции, и они должны быть в порядке, но точка приходит в архитектуре MVC. Это мой первый опыт работы по этому требованию, и это немного грязно.
Заказанный соответственно:
Model - View - Controller - JS файлы
Где у меня есть все функции - My HTML - PHP функция сеттер и вызывающему - Ajax Handler
С этой структурой , давайте проверим код:
Модель (выберите * из запросов пользователей)
public function listUsers(){ //check this
$result = $db->prepare('SELECT * FROM users');
if ($result->execute()){
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
echo '<table> <tr><td>DNI</td><td>Username</td><td>Firstname</td><td>Lastname</td><td>Email</td><td>Phone</td><td>Address</td><td>City</td><td>Postal</td><td>Province</td><td>CC</td><td>Admin</td><td>Creation</td></tr>';
echo '<tr><td>' . $row['dni'] . '</td><td>' . $row['username']. '</td><td>' . $row['firstname'] . '</td><td>' . $row['lastname'] . '</td><td>' . $row['email'] . '</td><td>' . $row['phone'] . '</td><td>' . $row['address'] . '</td><td>' . $row['city'] . '</td><td>' . $row['postal'] . '</td><td>' . $row['province'] . '</td><td>' . $row['creditcard'] . '</td><td>' . $row['creation'] . '</td><td>' . $row['isadmin'] . '</td></tr>';
}
}else{
echo 'There was an error during the execution. (listUsers)';
}
}
Контроллер
<?php
//list user from administrative panel controller
require "../model/backend.php";
$dbcom = new dbInteraction;
if(isset($_POST['action'])){
switch($_POST['action']){
case 'listUsers':
$dbcom->listUsers();
break;
default:
break;
}
}
$dbcom->conclose();
?>
AJAX Handler - Это должно быть отправитель действия к контроллеру
$(document).ready(function() {
$("#listUsers").click(function(e){
e.preventDefault(); // prevents submit event if button is a submit
ajax_route('listUsers');
});
function ajax_route(action_requested){
$.post("../controller/umanagement.php", {action : action_requested}, function(data){
if (data.length>0){
alert("Hoorah! Completed the action requested: "+action_requested);
}
})
}
}
И последнее, кнопка с точки зрения которой все начато - Просмотр
<button id="listUsers">List all users</button>
Я читал здесь в stackoverflow различные методы для выполнения этих действий, и, фактически, я использую один из предложенных методов, но он все еще не работает.
Правильно ли отправлены/получены параметры? Это может быть хорошей отправной точкой.
Любая помощь будет действительно оценена.
Look Я не очень хорошо в MVC, но то, что я знаю его начинается с индекса страницы, так что вы можете попробовать ввести полный URL вместо ../controller/umanagement.php .. просто try –
Последовательность действий выглядит правильно ... Правильно ли путь ajax? Вы подключились к БД? Вы должны попробовать отладить сам контроллер, если есть запрос, эхом отбросить некоторые вещи. Вы все еще пропускаете «V» из MVC, хотя :) – gskema
@ Mohamed-Yousef Я уже пробовал сам, прежде чем просить, но ничего. –