【发布时间】:2017-01-01 13:34:08
【问题描述】:
大家新年快乐!
我正在尝试从头开始连接一个小型 phalcon 项目,但无法显示视图。我可以使用我的 js 文件中的 ajax 请求调用控制器操作
$('#create_user').click(function () {
$.ajax({
url: "/user/create",
dataType: "json",
success: function (resp) {
console.log('successfully getting create page: ' + resp);
},
error: function (x, status, error) {
console.log(x.responseText);
console.log(error);
},
complete: function () {
}
});
});
我通过在操作中设置断点来确认。
<?php
use Phalcon\Mvc\Controller;
class UserController extends Controller
{
public function indexAction()
{
}
public function createAction()
{
$this->assets
->addJs('js/jquery.js')
->addJs('js/user.js');
$this->view->pick('/users/create');
}
}
但是,视图似乎没有被选中,并且当前视图的 html 文本返回给 ajax 请求的错误函数。 我不知道我做错了什么,请帮忙
【问题讨论】:
-
/user/create(单条)路线通向哪里,你为什么后来使用/users/create(复数)? -
抱歉,这是一个错字,它们都应该是
/users/create,这会导致我的views文件夹中的用户文件夹,其中包含create.phtml文件 -
您希望 AJAX 调用如何从
phtml文件中获取数据? -
对不起,Dainis,我的回答完全不正确。
/user/create指向UserController中的createAction,而/users/create指向我的views目录中的users文件夹,其中包含create.phtml文件。很抱歉造成混乱。 -
在那种情况下,你想达到什么目的? Ajax 调用应该执行后端 php 操作并返回纯数据。比如,
createAction应该收集请求数据、存储、验证它等等,然后返回true、false[id: 1]或类似的数据供 JS 显示。您不会在 ajax 中生成视图。 Ajax 就像:“嘿,m8,这样做!”它应该回答:“完成”而不是“去看看”