Codeigniter 中的 Ajax 调用

Posted

技术标签:

【中文标题】Codeigniter 中的 Ajax 调用【英文标题】:Ajax call in codeigniter 【发布时间】:2016-03-31 23:32:10 【问题描述】:

我实际上想在 CodeIgniter 中使用 ajax 来更新数据库中的值。 下面是给出的代码:

views/list_user.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Admin Panel</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>css/screen.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function()
      $('.round_button_circle').click(function() 
    //Now just reference this button and change CSS
    //$(this).css('background','green');
    var id=this.value;//Getting the id of the user to update the status from unpublish to publish
    var url='<?php echo base_url(); ?>index.php/ajax_controller/user_status';
    alert(id+url);
    $.ajax(
    type: 'POST',
    url: 'url', //We are going to make the request to the method "list_dropdown" in the match controller
    data: 'id='+id, //POST parameter to be sent with the tournament id
    success: function(data) 
    

     
 );

);
);
 </script>
</head>
<body>


    <div id="page-heading">
        <div class="button"><a href="create_category.php">Create User</a></div><!--create category-->
        <h1>USERS</h1><!--users's list-->
            </div>
    <!-- end page-heading -->
    <table border="0" style="width:97%;margin:0px auto" cellpadding="0" cellspacing="0" id="content-table">

    <tr>
        <td>
        <!--  start content-table-inner START -->
        <div id="content-table-inner">
            <div class="stdiv"><div class="msg1">
                <?php
                if(isset($_GET['msg']))
                
                    $msg=$_GET['msg'];
                    if($msg=="usertype")
                    
                        echo "User has been Created";
                    
                    if($msg=="create")
                    
                        echo "User has been Created";
                    
                    if($msg=="delete")
                    
                        echo "User has been Deleted";
                    
                    if($msg=="update")
                    
                        echo "User has been Updated";
                    
                
                ?>
            </div>

            </div>
                <!--  start category-table -->

                <table border="0"  cellpadding="0" style="width:100%;margin:0px auto" cellspacing="0" id="product-table">
                <tr>
                    <tr>
                    <th class="tbl_hdr">USER ID</th> <!--ID-->                    
                    <th class="tbl_hdr">‫NAME</th> <!--Name-->                                       
                    <th class="tbl_hdr">EMAIL</th> <!--Email-->
                    <th class="tbl_hdr">PHONE NUMBER‎</th> <!--ph number-->
                    <th class="tbl_hdr">STATUS</th> <!--publish/unpublish-->
                    <th class="tbl_hdr" colspan="2">ACTION</th> <!--edit/delte-->                                                       
                   </tr>
                   <?php foreach($users as $user)?>
                   <tr>
                   <td><?php echo $user->id;?></td>
                   <td><?php echo $user->username;?></td>
                   <td><?php echo $user->email;?></td>
                   <td><?php echo $user->contact;?></td>
                   <td ><button id="status" class="round_button_circle" value="<?php echo $user->id;?>"></button></td>
                   </tr>    
                   <?php ?>  
                </table>
                <!--  end product-table................................... --> 

            </div>
            <!--  end content-table  -->
            <!--  start paging..................................................... -->
                        <!--  end paging................ -->
            <div class="clear"></div>

        <!--  end content-table-inner ............................................END  -->
        </td>       
    </tr>   
    </table>
    <div class="clear">&nbsp;</div>
</div>
<!--  end content -->
<div class="clear">&nbsp;</div>
</div>
<!--  end content-outer........................................................END -->
<div class="clear">&nbsp;</div>
<!-- start footer -->         
</body>
</html>

控制器/ajax_controller.php

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Ajax_Controller extends CI_Controller 

// Show view Page


// This function call from AJAX
public function user_status() 

$id=$this->input->post('id');
$data = array(
               'status' => 1

            );
$this->db->where('id', $id);
$this->db->update('tbl_users', $data);
echo "1";





它在警报框中给了我要在数据库中更新的 url 和 id...但是一旦单击按钮,它就不会更新数据库中的值.. 谁能帮忙???

【问题讨论】:

检查您的浏览器控制台以了解确切的问题。 Ajax 是否触发。如果您使用 Firebox 使用 firebug 插件,它将帮助您触发 ajax 调用。或将控制台错误放在这里。 还要检查控制器函数中的 id 是否出现 【参考方案1】:

你的代码有一个错误。

改变

url: 'url', // in ajax call

url: url,  // do not use quotes with url variable

【讨论】:

如果您的问题仍然存在,或者您将面临 403 错误,那么只需使用带有 ajax 的 CSRF。 ***.com/questions/19333098/… 像调试方式一样酷炫 感谢@Ali Shan ..上述解决方案就像一个魅力...我从上个 24 小时开始一直在处理 dis ..但找不到错误...非常感谢您制作不工作..

以上是关于Codeigniter 中的 Ajax 调用的主要内容,如果未能解决你的问题,请参考以下文章

判断帖子是不是来自codeigniter中的ajax调用的方法?

如何区分php(或codeigniter)中的ajax调用和浏览器请求?

在 ajax 调用后加载视图,CodeIgniter

使用 ajax 调用加载视图 codeigniter

Codeigniter 会话因 ajax 调用而出错

使用 ajax 调用 CodeIgniter 模型