php - CodeIgniter Ajax 层

标签 php ajax codeigniter object

我一直在对 ajax 进行大量研究,但我似乎找不到太多关于使用 codeigniter 创建单独的 ajax 层的信息......我在 codeigniter 上执行教程视频的目录树中看到了 ajax Controller ,只是从来没有得到真正的解释。我假设它是为了促进封装并仅向启用了 javascript 的用户展示等等,只是不确定如何在 Controller 中实现它以便在我自己的项目中使用。

最佳答案

这完全取决于您在做什么。在我看来,最简单的方法不是使用单独的 AJAX Controller 和 url,而是检测 Controller 中的请求并输出与平常不同的内容。 Input class有一个功能:

/**
 * Is ajax Request?
 *
 * Test to see if a request contains the HTTP_X_REQUESTED_WITH header
 *
 * @return  boolean
 */
public function is_ajax_request()
{
    return ($this->server('HTTP_X_REQUESTED_WITH') === 'XMLHttpRequest');
}

我更喜欢使用常量:

/**
 * Is this an ajax request?
 *
 * @return      bool
 */
define('AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest');

Controller 方法中的示例用法:

$data = $this->some_model->get();
if ($this->input->is_ajax_request())
{
    // AJAX request stops here
    exit(json_encode($data));
}
$this->load->view('my_view', $data);

这样,您就不会将相同或相似的应用程序逻辑分散到多个不同的 Controller 中,并且您的代码可以更易于维护。例如,您的标准 HTML 表单可以使用 AJAX 发布到相同的位置并具有不同的输出,因此它也有助于制作 progressive enhancement。更容易和清洁。此外,您不会有需要对用户“隐藏”的“仅限 AJAX”的 URL。

关于php - CodeIgniter Ajax 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9693248/

相关文章:

PHP 替换 Word 文档中的变量

php - 具有 Checkstyle 兼容输出格式的最佳 PHP 代码风格检查器

javascript - 提交前的 Ajax 验证

javascript - 动态添加 jquery ajax 选项

php - 如何使用codeigniter上传多张图片

php - NULL 作为 codeignitier 事件记录选择中的列?

java - PHP 中有相当于 Java Set 的东西吗?

php - 如果数据库出现故障,如何保留动态创建的输入字段值?

javascript - 从客户端生成的链接回发 (AJAX)

javascript - 使用javascript收集表单输入值的快捷方式