【问题标题】:Codeigniter HMVC and calling a view from jQueryCodeigniter HMVC 并从 jQuery 调用视图
【发布时间】:2011-06-23 01:37:10
【问题描述】:

Codeigniter 中的 HMVC 新手。

动态表单允许在用户单击链接时创建新的“段”。

目前 html & php 段位于 module/view/segment_view.php 中。该视图还需要动态 php 变量。

如何使用 jQuery “加载视图”?我知道我不能直接从 jQuery 加载视图,但是对于如何为 AJAX 调用构建控制器感到迷茫。似乎这可能不是 Codeigniter 的强项?

编辑:
“段”在表单内。表单始终有 1 个段。 jQuery 可以添加更多的段。每个段都需要 php 数组来进行表单输入和验证。

这里是 form_view 文件的精简版

for ($i=1; $i<=$number_of_segments; $i++) {

    $data['location'] = array(
        'name'  =>  "segment[$i][location]",
        'value' =>  set_value("segment[$i][location]"),
        'maxlength' =>  '255',
        'size'  =>  '30'
    );  
 ?>
    <div class="area">
        <div class="row"><h2>Segment <?php echo $i;?></h2></div>

        <?php 
        $this->load->view('module/segment_view', $data);
        ?>

    </div> <!--/div class="area"-->
<?php
}    //end for
?>

好的,所以这并没有真正将应用程序逻辑与表示分离,是吗?哈哈。那么构建这个代码的最佳方法是 HMVC 并且可以从 php 控制器/视图以及 jQuery 访问?

【问题讨论】:

    标签: jquery ajax codeigniter dynamic-forms hmvc


    【解决方案1】:

    不能直接通过URL调用视图文件,需要调用加载视图的控制器方法。

    如果你想做一些“仅 ajax”的东西,你可以使用这个函数:

    if ($this->input->is_ajax_request()) // Do ajax stuff
    

    示例将加载视图片段或 json。您不必在控制器中创建“仅 ajax”方法,如果它是 ajax 请求,您可以在现有控制器方法中使用此函数来执行不同的操作。

    不确定这是否能为您解决任何问题,请提供一些代码和更多关于您正在尝试做的事情的上下文,我们可以为您提供更清晰的建议。

    【讨论】:

    • 谢谢,我相信 is_ajax_request 是我正在寻找的东西,但我仍在尝试完全掌握实现复杂 HMVC 的正确方法。如果可以,请检查我的编辑。再次感谢。
    • @ChristopherIckes:我很抱歉承认,但在看到您的编辑后,我仍然无法弄清楚您想要做什么,或者您遇到了什么问题。据我所知,与 HMVC 或 jQuery 没有任何关系。
    • 哈哈,原来如此!但是is_ajax_request() 是答案。我在控制器和视图中分离了上述问题并删除了视图逻辑。现在我可以使用is_ajax_request() 请求我需要的部分。现在这个想法已经开发并且代码是 HMVC,而不是 gobbledy gook,它就像一个魅力。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2011-02-06
    • 1970-01-01
    • 2014-03-25
    相关资源
    最近更新 更多