2015-11-28 6 views
1

Я кодирую бэкэнд проекта и в модуле, который я пытаюсь реализовать, мне нужно управлять пользователями, например, получить все данные из таблицы 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 различные методы для выполнения этих действий, и, фактически, я использую один из предложенных методов, но он все еще не работает.

Правильно ли отправлены/получены параметры? Это может быть хорошей отправной точкой.

Любая помощь будет действительно оценена.

+1

Look Я не очень хорошо в MVC, но то, что я знаю его начинается с индекса страницы, так что вы можете попробовать ввести полный URL вместо ../controller/umanagement.php .. просто try –

+1

Последовательность действий выглядит правильно ... Правильно ли путь ajax? Вы подключились к БД? Вы должны попробовать отладить сам контроллер, если есть запрос, эхом отбросить некоторые вещи. Вы все еще пропускаете «V» из MVC, хотя :) – gskema

+0

@ Mohamed-Yousef Я уже пробовал сам, прежде чем просить, но ничего. –

ответ

1

После нескольких проверок, мой последний и рабочий код является следующий:

function op_User(action_requested){ 
    var username = $('#username').val(); 
    $.ajax({ url: '/youtube/controller/umanagement.php', 
    data: { 
     action: action_requested, 
     username: username 
    }, 
    type: 'post', 
    success: function(output) { 
     document.write(output); 
    }, 
    error: function(){ 
     alert('ajax error'); 
    } 

    }); 
} 

Так вот оно, как и @gskema и сказал @VIDesignz, проблема была относительный путь в функции AJAX. Это должен быть полный путь.

Спасибо и надеюсь, что это помогает

Смежные вопросы