gpt4 book ai didi

蛋糕PHP 1.3 : how to execute an action without going to its view

转载 作者:行者123 更新时间:2023-12-01 03:58:21 24 4
gpt4 key购买 nike

我有一个页面通过操作 search用户可以在其中指定一些选项来显示数据行。这个过程需要几秒钟,因为需要相当多的后端逻辑。在返回的数据上,用户可以通过操作 add_data 将一行数据添加到另一个表中。备查。

请注意,搜索结果数据保存在一个表中,以便我在用户决定保存该行时随时可用(搜索结果是来自多个数据库的数据的汇编)。行动后add_data ,我希望能够维护search查看搜索结果,而不是让浏览器转到 add_data查看并返回到引荐来源,那里将没有搜索结果。

现在,我知道我可以检查保存搜索结果的表格,然后将其加载到 search 上。 View ,但我很想知道是否可以在不查询数据库的情况下保持当前操作 View 完好无损地运行另一个操作。据我所知,没有一种 $this->redirect(...)之所以有效,是因为搜索结果页面的 URL 缺少任何参数(例如 mycontroller/search )。

我添加了一个按钮,使用以下代码添加用户所需的数据:

echo $this->Html->link('+', array('action' => 'add_data', $reference_id));    // + button is created

有没有办法做到这一点?最好使用最少的 Javascript。

最佳答案

按照步骤操作 here为您的蛋糕项目添加 ajax 支持。

然后,在呈现搜索 View 的 Controller 中启用 ajax 助手:

$this->helpers('Ajax');

您应该能够像这样呈现您的链接,并且它不会引导用户离开搜索页面:
<?php echo $this->Ajax->link(
'+',
array('action' => 'add_data', $reference_id),
array('update' => 'my-div')
);
?>
<div id='my-div'></div>

由于您希望用户能够向该操作发送数据,因此您可能需要考虑发布表单而不仅仅是链接。 Ajax 助手还提供了通过 Ajax 提交表单的能力:
echo $form->create();
echo $form->input('field1');
echo $form->input('field2');
echo $ajax->submit('Submit', array(
'url'=> array('controller'=>'mycontroller', 'action'=>'add_data'),
'update' => 'my-div'

));
echo $form->end();

在您的 Controller 中....
function add_data() {
// ... do something
$this->layout = 'ajax';
$this->set('message', 'Your message here!');
}

在 add_data View 中....
<?php echo $message; ?>

关于蛋糕PHP 1.3 : how to execute an action without going to its view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488528/

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