Javascript 使用Codeigniter使用CSS按钮颜色更改更新AJAX数据库

Javascript 使用Codeigniter使用CSS按钮颜色更改更新AJAX数据库,javascript,css,ajax,codeigniter,checkbox,Javascript,Css,Ajax,Codeigniter,Checkbox,我在这里看到了一些很好的帖子,里面有我正在尝试做的事情,但是没有提到所有方面。有人有任何代码示例或建议来帮助我做我想做的事情吗 首先,我将使用一组数据构建我的MVC视图,例如(组织名称、id、状态),其中状态是一个布尔值,可以是选中的,也可以是未选中的。但是,我不想仅仅显示一个复选框,而是希望根据数据库值的状态显示一个特定的显示绿色(选中)或红色(未选中)按钮。CSS不是一个问题 然后,如果用户单击该按钮,我希望将div值从红色更改为绿色(反之亦然),但也要通过AJAX调用更新数据库字段中的布尔

我在这里看到了一些很好的帖子,里面有我正在尝试做的事情,但是没有提到所有方面。有人有任何代码示例或建议来帮助我做我想做的事情吗

首先,我将使用一组数据构建我的MVC视图,例如(组织名称、id、状态),其中状态是一个布尔值,可以是选中的,也可以是未选中的。但是,我不想仅仅显示一个复选框,而是希望根据数据库值的状态显示一个特定的显示绿色(选中)或红色(未选中)按钮。CSS不是一个问题

然后,如果用户单击该按钮,我希望将div值从红色更改为绿色(反之亦然),但也要通过AJAX调用更新数据库字段中的布尔值。最好尽可能利用JQuery


最后,我需要知道如何使用CodeIgniter完成这一切。我对CI非常精通,但在这一点上,我是一个Javascript/JQuery新手。有没有人能给我指出正确的方向,或者推荐一个网站,上面有一些与我想做的事情相近的示例代码,或者是一个很好的资源,而不是显而易见的资源?非常感谢。

好的,CodeIgniter是一个PHP框架,这意味着它可以在服务器端工作。(我知道,里面有一个ajax库,但我不使用它。)我们必须理解服务器端和客户端之间的区别。您的javascript是客户端的。我通常在codeigniter中开发没有javascript的一切,然后返回并添加javascript位。这有助于我确保系统适用于那些没有打开javascript或出于任何原因无法执行javascript的用户。(顺便说一句,这就是所谓的)

因此,首先,让我们考虑一下非javascript版本: 您只需要在单击时为红色/绿色按钮提供一个url,该url指向控制器方法,该方法将更新数据库记录并将您重定向回以前所在的页面(该页面具有红色/绿色按钮)

/controller/method.html是我们的控制器方法,它将保存到数据库并重定向回此页面。-->

控制器方法只是检查它是否是ajax请求。如果是,则返回success,如果不是,则重定向页面

function my_controller_method()
{
    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
        $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest") {

        // update your database
        echo "success";
    }else{
        // redirect back to page
        redirect($_SERVER[‘HTTP_REFERER’]);
    } 
}

好的,CodeIgniter是一个PHP框架,这意味着它在服务器端工作。(我知道,里面有一个ajax库,但我不使用它。)我们必须理解服务器端和客户端之间的区别。您的javascript是客户端的。我通常在codeigniter中开发没有javascript的一切,然后返回并添加javascript位。这有助于我确保系统适用于那些没有打开javascript或出于任何原因无法执行javascript的用户。(顺便说一句,这就是所谓的)

因此,首先,让我们考虑一下非javascript版本: 您只需要在单击时为红色/绿色按钮提供一个url,该url指向控制器方法,该方法将更新数据库记录并将您重定向回以前所在的页面(该页面具有红色/绿色按钮)

/controller/method.html是我们的控制器方法,它将保存到数据库并重定向回此页面。-->

控制器方法只是检查它是否是ajax请求。如果是,则返回success,如果不是,则重定向页面

function my_controller_method()
{
    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
        $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest") {

        // update your database
        echo "success";
    }else{
        // redirect back to page
        redirect($_SERVER[‘HTTP_REFERER’]);
    } 
}

你想要的是一种竖起大拇指的感觉……链接中包含了一个演示

你想要的是一种竖起大拇指的感觉……链接中包含了一个演示

真棒!谢谢你的时间和努力。我会检查一下,找出代码在做什么。一旦我的头脑被它包围了,我会发回任何额外的东西,这将有助于其他人快速跟上速度。太棒了!谢谢你的时间和努力。我会检查一下,找出代码在做什么。一旦我开始思考,我会发回任何有助于其他人快速跟上进度的额外信息。要记住,这是非常好的资源。非常感谢。我把它放在书签里了。记住这是很好的资源。非常感谢。我把它标在书签上了。
function my_controller_method()
{
    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
        $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest") {

        // update your database
        echo "success";
    }else{
        // redirect back to page
        redirect($_SERVER[‘HTTP_REFERER’]);
    } 
}