我正在对项目的后端进行编码,在我试图实现的模块中,我需要管理用户,例如,从表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中阅读不同的方法来执行这些操作,实际上,我正在使用这些建议的方法之一,但它仍然不起作用。
参数发送/接收是否正确?这可能是一个很好的起点。
任何帮助都将不胜感激。
经过一些检查,我的最终工作代码如下:
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函数中的相对路径。它必须是完整的路径。
感谢并希望它能帮助