gpt4 book ai didi

jquery - 通过Joomla MVC组件使用jQuery更新数据库

转载 作者:行者123 更新时间:2023-12-01 01:11:13 25 4
gpt4 key购买 nike

我正在开发 Joomla 组件 TTVideo 的新版本。我正在尝试使用 jQuery star 插件设置一个评级系统。我已经解决了 jQuery noconflict 问题,但是我对如何安全将选票发送到用选票值更新数据库的帮助程序类感到有点困惑。

通常这是通过外部脚本完成的,该脚本仅由 ajax 请求访问。我想这样做,以便将其合并到我的组件中,并且以这样的方式,std Joomla 变量可用于辅助类,例如getDBO() 和数据库引用#__table_name。

任何有关如何实现这一目标的评论将不胜感激。谢谢。

最佳答案

这非常简单。

首先,您需要创建一个具有处理评级更新的特定任务的 Controller 。为了确保安全,请验证 token ! token 将随 AJAX 请求一起提供。

考虑这个例子

function rate() {
// Check for request forgeries
JRequest::checkToken() or jexit('Invalid Token');

// Get ID of item
// update rating, etc...
}

其次,在 View 中创建 AJAX 请求,显然是由某些操作触发的。确保以 POST 方式发送您的请求,因为您将写入数据...您可以让外部文档中的脚本从 html 文档中获取值(隐藏输入中的 id、token、url 等),也可以使用 PHP 生成 javascript 并将其包含在 header 中(如下例所示)。

<?php
//
$url = JRoute::_('index.php?option=my_component&controller=my_controller');
$token = JUtility::getToken(); // <- Session token
$id = 101; // <- YOUR ID

// This will add the request to the head of the document, instead of somewhere in the document
JFactory::getDocument()->addScriptDeclaration("
.ajax({
type: 'POST',
url: $url,
data: {
'$token': '1', // <-- THIS IS IMPORTANT
'task': 'rate',
'id': $id
},
success: youSuccessFunction
});
");
?>

您可能需要修改一些东西,但这就是 MVC 中 AJAX 背后的想法。

注意:您还可以调用 JRequest::checkToken('get'),这将检查 url 中的 token 。这对于读取数据的 AJAX 调用很有用。

关于jquery - 通过Joomla MVC组件使用jQuery更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3987205/

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