【发布时间】:2010-08-01 14:44:28
【问题描述】:
美好的一天!
我正在学习创建对 PHP 脚本的 AJAX 调用。
基本上,我想找到处理 AJAX 调用的最佳解决方案。在this 问题中,您可以找到我的客户端代码部分。
基本上,我想在这里验证我的知识,如果我错了,请获得任何提示以使其正确。
所以...我正在使用 KohanaPHP 框架(但也要学习 ZendFramework)。我用以下代码创建了一个测试控制器:
public function __construct()
{
if (request::is_ajax()) {
$this->auto_render = FALSE;
header('content-type: application/json');
}
}
public function index()
{
$result['success'] = 1;
$test_model = new Test_Model;
$items = $test_model->get_test_rows();
foreach($items as $item):
$rows[] = $item;
endforeach;
$result['rows'] = json_encode($rows);
if (request::is_ajax()) {
echo json_encode($result);
}
}
现在我收到了一些与此代码相关的问题。让我问问他们。
1) 在上面提到的线程中,有人告诉我不必使用$.parseJSON(); 函数,而可以使用data.rows[0]name。不幸的是,它不起作用。这不是什么大问题,我可以使用$.parseJSON();,但我想知道我的 PHP 代码中是否有任何错误?
2) 我正在努力学习良好的实践和技术,并且我正在努力不违反 MVC 规则。我有一个与 MVC 相关的问题。是否可以在控制器中使用echo()?您可能会注意到我正在使用它来返回 JSON 编码数据。
【问题讨论】:
-
is_asjax 函数有什么用?对我来说,您的页面根据是否接收 Ajax 调用返回不同的结果,这似乎有点可疑。相反,考虑一个名为“format”的变量,其值为“json”、“xml”等。