当前位置: 首页 > 面试题库 >

Codeigniter AJAX示例

魏誉
2023-03-14
问题内容

我一直在找一个礼拜的完整示例,以了解如何在Codeigniter中使用AJAX(我是AJAX新手)。我见过的帖子/教程很老-所有编程语言都在发展。

我想在页面上有一个输入表单,该表单可以向页面返回一些内容(例如,变量,数据库查询结果或html格式的字符串),而无需刷新页面。在这个简单的示例中,是一个带有输入字段的页面,该页面将用户输入插入数据库。输入提交后,我想加载其他视图。如果我能理解如何做到这一点,我将能够使其适应我的需要(并希望它也会对其他人有所帮助!)

我的“测试”控制器中有这个:

function add(){
    $name = $this->input->post('name');
    if( $name ) {
        $this->test_model->put( $name );
    }
}

function ajax() {
    $this->view_data["page_title"] = "Ajax Test";
    $this->view_data["page_heading"] = "Ajax Test";

    $data['names'] = $this->test_model->get(); //gets a list of names
    if ( $this->input->is_ajax_request() ) { 
        $this->load->view('test/names_list', $data);
    } else {
        $this->load->view('test/default', $data);
    }
}

这是我的名为“ ajax”的视图(因此,我通过URL www.mysite.com/test/ajax访问此视图)

<script type="text/javascript">
    jQuery( document ).ready( function() {
       jQuery('#submit').click( function( e ) {
           e.preventDefault();
           var msg = jQuery('#name').val();
           jQuery.post("
               <?php echo base_url(); ?>
               test/add", {name: msg}, function( r ) {
                   console.log(r);
               });
           });
       });
</script>

<?php echo form_open("test/add"); ?>
<input type="text" name="name" id="name">
<input type="submit" value="submit" name="submit" id="submit">
<?php echo form_close(); ?>

当前发生的一切是,我输入一个输入,更新数据库并显示视图“ test / default”(它不会刷新页面,但不会根据需要显示“ test /
names_list”。非常感谢。寻求帮助,让我摆脱痛苦!


问题答案:

将唯一ID设置为以下形式:

echo form_open('test/add', array('id'=>'testajax'));

我假设您要用视图替换表单:

jQuery(document).ready(function(){
var $=jQuery;
$('#testajax').submit(function(e){
    var $this=$(this);
    var msg = $this.find('#name').val();
    $.post($this.attr('action'), {name: msg}, function(data) {
      $this.replace($(data));
    });
    return false;
});

更好的方法,如果您在json响应中返回视图的url:

$.post("<?php echo base_url(); ?>test/add", {name: msg}, function(data) {
  $this.load(data.url);
},"json");

根据您的最后评论-我 强烈 建议您不要替换正文,因此很难支持此类代码。

但是这是分析服务:

$.post("<?php echo base_url(); ?>test/add", {name: msg}, function(data) {
      $('body').replace(data);
    });


 类似资料:
  • Composite Images watermark(['/img/shepherd.jpg', '/img/logo.png']) .image(watermark.image.lowerRight()) .then(function (img) { document.getElementById('composite-image').appendChild(img); }); Al

  • 示例的Python源代码或者交互界面都可以使用标准reST模块实现.在正常段落后面跟着 :: 开始,再加上适当缩进. 交互界面需包含提示及Python代码的输出. 交互界面没有特别的标记. 在最后一行输入或输出之后,不应出现空的提示; 这是一个什么都不做的例子: >>> 1 + 1 2 >>> 语法高亮显示由 Pygments (如果安装) 优雅的显示: 每个源文件都有高亮语言”highlight

  • Redux 源码 中同时包含了一些示例。这些示例中的大多数也在CodeSandbox上,这是一个在线编辑器,可让您在线测试示例。 原生版 Counter 运行 Counter Vanilla 示例: git clone https://github.com/reactjs/redux.git cd redux/examples/counter-vanilla open index.html 该示

  • 这是一些 Mithril 的示例: Animation DBMonster Markdown Editor SVG: Clock, Ring, Tiger ThreadItJS TodoMVC

  • 已经有超过50,000本图书使用GitBook.com发布。 文档 DuckDuckHack 文档 by DuckDuckGo Loomio Handbook and guide to using Loomio both by Loomio Enspiral Handbook by Enspiral Webmagic开发文档 by https://github.com/code4craft/web

  • 这里列出了所有示例: adc_vol_sample.c dynmem_sample.c event_sample.c httpclient_sample.c hwtimer_sample.c i2c_aht10_sample.c idlehook_sample.c interrupt_sample.c iwdg_sample.c led_blink_sample.c mailbox_sample.

  • 下面的例子说明了部署描述文件模式中列出的定义的用法。 一个简单的例子 CODE EXAMPLE 14-1 Basic Deployment Descriptor Example <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://

  • 计算变量 首先,让我们从一些必要的代码开始。 这个例子的目的是如果条件满足,将 a 和 b 计算后的值绑定到 c 上。 下面就是必要的代码示例: // this is standard imperative code var c: String var a = 1 // this will only assign the value `1` to `a` once var b = 2