我正在编写项目的后端,在我正在尝试实现的模块中,我需要管理用户,例如,从表Users获取所有数据,并获得与所选用户相关的数据例如,使用输入文本。它还必须能够更新和删除记录。
所以我已经编写了所有函数,但它们必须没问题,但重点是MVC架构。这是我第一次按照这个要求工作而且有点乱。
分别订购:
模型 - 视图 - 控制器 - JS文件
我拥有所有函数 - 我的HTML - PHP函数setter和调用者--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处理程序 - 它应该是控制器操作的发送者
$(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中的不同方法来执行此操作,实际上,我正在使用其中一种建议的方法,但它仍然无法正常工作。
是否正确发送/接收了参数?这可能是一个很好的起点。
任何帮助都将非常感激。
答案 0 :(得分: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函数中的相对路径。它必须是完整的道路。
谢谢,希望有所帮助