【发布时间】:2016-03-02 18:50:14
【问题描述】:
我正在对项目的后端进行编码,并且在我尝试实现的模块中,我需要管理用户,例如,从表 Users 中获取所有数据,并仅获取与所选用户相关的数据例如,使用输入文本。它还必须能够更新和删除记录。
所以我已经对所有函数进行了编码,它们必须没问题,但重点在于 MVC 架构。这是我第一次按照这个要求工作,有点乱。
分别排序:
模型 - 视图 - 控制器 - JS 文件
我拥有所有功能 - 我的 HTML - PHP 函数设置器和调用者 - Ajax 处理程序
有了这个结构,我们来看看代码:
型号(从用户查询中选择 *)
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 处理程序 - 它应该是控制器动作的发送者
$(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);
}
})
}
}
最后一个,一切开始的视图中的按钮 - View
<button id="listUsers">List all users</button>
我一直在 stackoverflow 中阅读不同的方法来执行此操作,实际上,我正在使用这些建议的方法之一,但它仍然无法正常工作。
参数是否正确发送/接收?这可能是一个很好的起点。
任何帮助将不胜感激。
【问题讨论】:
-
看我在 MVC 中不好,但我知道它从索引页面开始,所以你可以尝试输入完整的 url 而不是 ../controller/umanagement.php .. 试试
-
动作序列看起来正确... ajax 路径是否正确?你连接到数据库了吗?您应该尝试调试控制器本身,如果有请求,请回显一些内容。不过,您仍然缺少 MVC 中的“V” :)
-
@Mohamed-Yousef 我之前已经尝试过自己询问但没有。
-
@gskema ajax 路径是什么意思?如果您指的是我发送数据的路径(后端),是的。我在那里做了一些调试,但它没有打印任何东西,即使我在 if 语句之前的开头放了一些回声。这就是我来的原因。很奇怪。
-
您的 AJAX URL 必须是控制器的完整路径......即 www.mysite.com/controller/method
标签: javascript php jquery ajax model-view-controller