gpt4 book ai didi

php - Codeigniter AJAX 示例

转载 作者:可可西里 更新时间:2023-10-31 22:47:57 25 4
gpt4 key购买 nike

我已经花了一个星期的时间寻找一个像样的完整示例来说明如何将 AJAX 与 Codeigniter 结合使用(我是 AJAX 新手)。我看到的帖子/tuts 是旧的 - 所有的编程语言都在发展。

我想在页面上有一个输入表单,它可以在不需要刷新页面的情况下向页面返回一些东西(例如变量、数据库查询结果或 html 格式的字符串)。在这个简单的示例中,有一个带有输入字段的页面,它将用户输入插入到数据库中。提交输入后,我想加载不同的 View 。如果我能理解如何做到这一点,我就能调整它来做我需要的任何事情(希望它也能帮助其他人!)

我的“测试” Controller 中有这个:

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);
}
}

这是我的 View ,名为“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(); ?>

当前发生的所有事情是我输入一个输入,更新数据库并显示 View “test/default”(它不会刷新页面,但不会按需要显示“test/names_list”。许多提前感谢您的帮助,让我摆脱痛苦!

最佳答案

为表单设置唯一标识:

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

我假设您想用 View 替换表单:

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 响应中返回 View 的 url,则更好:

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


根据您的最后一条评论 - 我 强烈不建议替换 body,支持这样的代码将非常困难。

但这里是 anser:

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

关于php - Codeigniter AJAX 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13887095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com