AJAX数据库更新与CSS按钮颜色改变使用Codeigniter
AJAX database update with CSS button color change using Codeigniter
我在这里看到了一些关于我正在尝试做的事情的好帖子,但没有解决所有领域的问题。有没有人有任何代码示例或建议,以帮助我做我想做什么?
首先,我将用数据数组(如(org name, id, status)构建我的MVC视图,其中status是布尔值,选择或未选择。但是,我不想仅仅显示一个复选框,而是希望根据数据库值的状态显示一个绿色(选中)或红色(未选中)的按钮。CSS不是问题。
然后,当用户单击按钮时,我想将div值从红色更改为绿色(反之亦然),但也要通过AJAX调用更新数据库字段中的布尔值。在可能的情况下最好使用JQuery。
最后,我需要知道如何使用CodeIgniter来完成这一切。我很精通CI,但Javascript/JQuery新手-鹿在这一点上的头灯。有人能指出我在正确的方向或建议一个网站与一些示例代码接近我想做什么或一个好的资源,而不是显而易见的?谢谢。
好,CodeIgniter是一个PHP框架-这意味着它工作在服务器端。(我知道,那里有一个ajax库,但我不使用它。)我们必须理解服务器端和客户端之间的区别。你的javascript是客户端。我通常在codeigniter中开发所有没有javascript的东西,然后返回并添加javascript位。这有助于我确保系统的工作为那些没有javascript打开,或不能执行javascript的任何原因。(顺便说一句,这被称为渐进增强)。
那么,首先,让我们关注一下非javascript版本:你只需要给你的红色/绿色按钮一个url,当点击指向控制器方法,将更新数据库记录,并重定向到你以前的页面(其中有红色/绿色按钮)。
/controller/method.html是我们的控制器方法,它将保存到数据库并重定向到该页。——>
<a href="/controller/method.html" class="red my-button">Check</a>
现在,让我们关注js版本:
在视图中,您只需要劫持点击,发送ajax请求,并根据控制器方法的结果更改红色/绿色按钮。因此,我们所做的是防止链接将页面重定向到href属性(e.p avenddefault())。然后,我们获取href的值并对该控制器方法进行ajax调用。该方法将确定这是否是ajax请求并保存到数据库,然后回显"成功"消息。在success
上,我们可以在客户端更新可视化组件。
$('.my-button').live('click', function(e) {
e.preventDefault();
$.ajax({
// $(this).attr('href') gets the value of the links href attribute
// which is "/controller/method.html" in this case
url: $(this).attr('href'),
success: function(data) {
// update your button with whatever html to write the new button
$('.my-button').replaceWith('<a href="/controller/method.html" class="red my-button">Check</a>');
}
});
});
你的控制器方法只是检查它是否是一个ajax请求。如果是,则返回成功,否则重定向页面。
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’]);
}
}
你想要的是大拇指/喜欢的东西…链接中包含了一个演示http://www.geertdedeckere.be/lab/themeforest/thumbsup/demo/
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 使用codeigniter的多链下拉列表
- 为什么使用immutableJS我的状态没有改变
- JavaScript改变了双方的显示风格
- 在CodeIgniter视图中将Javascript或jQuery代码作为PHP文件编写可以吗
- 改变所有<td>为特定的桌子点击颜色
- Codeigniter会话概念简要说明
- 当达到codeigniter/tank auth会话超时时,在ajax调用中处理php重定向
- 变量dos'即使我可以返回更新后的值,也不会改变
- 如何使用post和ajax加载视图Codeigniter
- jQuery更改变量值
- 爆米花改变来源
- innerHTML赢得't改变元素
- Javascript onclick更改变量值
- "改变“;列表头,然后继续处理列表
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 是否可以使用“;document.all”;在IE11中,而不改变每次使用
- AJAX数据库更新与CSS按钮颜色改变使用Codeigniter
- 当我点击正确答案时,如何改变按钮的颜色?它在PHP中进行了测试.(CodeIgniter)