gpt4 book ai didi

javascript - 如何添加 AJAX 操作 - Elgg

转载 作者:行者123 更新时间:2023-12-02 14:21:35 24 4
gpt4 key购买 nike

我正在尝试在 elgg 中创建 AJAX 操作。我已经遵循了这个 Elgg 教程:Ajax:执行操作,但除了失败错误之外,到目前为止我什么也没得到:

Sorry, Ajax only!

另一个错误是页面重新加载,而不是异步保存数据。

我错了什么?提前谢谢大家。

下面是我的代码:

表单: views/default/forms/service_comments/add.php

<?php
$url_confirm = elgg_add_action_tokens_to_url("action/service_comments/add?guid={$guid}");
$params_confirm = array(
'href' => $url_confirm,
'text' => elgg_view_icon('upload'),
'is_action' => true,
'is_trusted' => true,
'class' => 'upload-media-update',
);

$confirm = elgg_view('output/url', $params_confirm);
?>

<div class="update-options">
<?= $confirm ?>
</div>

start.php

elgg_register_action("service_comments/add", __DIR__ . "/actions/service_comments/add.php");

操作文件: actions/service_comments/add.php

<?php

elgg_ajax_gatekeeper();

$arg1 = (int)get_input('arg1');
$arg2 = (int)get_input('arg2');

// will be rendered client-side
system_message('We did it!');

echo json_encode([
'sum' => $arg1 + $arg2,
'product' => $arg1 * $arg2,
]);

Javascript: views/js/service_comments/add.js

var Ajax = require('elgg/Ajax');
var ajax = new Ajax();

ajax.action('service_comments/add', {
data: {
arg1: 1,
arg2: 2
},
}).done(function (output, statusText, jqXHR) {
if (jqXHR.AjaxData.status == -1) {
return;
}
alert(output.sum);
alert(output.product);
});

最佳答案

您已编写ajax 过程但未调用它。相反,您直接调用它。通过使其链接。

    $params_confirm = array(
'href' => '#',
'text' => elgg_view_icon('upload'),
'onclick' => "myajax_function()",
'class' => 'upload-media-update',
);

$confirm = elgg_view('output/url', $params_confirm);

然后将 JS 代码移至函数内。

function myajax_function(){
var Ajax = require('elgg/Ajax');
var ajax = new Ajax();

ajax.action('service_comments/add', {
data: {
arg1: 1,
arg2: 2
},
}).done(function (output, statusText, jqXHR) {
if (jqXHR.AjaxData.status == -1) {
return;
}
alert(output.sum);
alert(output.product);
});
}

关于javascript - 如何添加 AJAX 操作 - Elgg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38619422/

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