0
我試圖在elgg中創建一個AJAX動作。我跟了這埃爾格教程:阿賈克斯:執行行動,但我得到什麼,到目前爲止,除了失敗的錯誤:如何添加一個AJAX動作 - Elgg
Sorry, Ajax only!
另一個錯誤是,頁面重新加載,而不是堅持異步數據。
我得到什麼錯誤?謝謝大家。
下面是我的代碼:
形式:的意見/默認/表格/ 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");
動作文件:個動作/ 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:的意見/ 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);
});
嗨@enRaiser。我有一個後續問題[這裏:我怎麼能將數據從HTML表單傳遞到處理AJAX調用的JavaScript文件](http://stackoverflow.com/questions/38651742/how-can-i-go-關於傳遞數據從一個HTML形式到一個JavaScript文件那句柄),我希望你可以再次請幫忙。謝謝。 –
'onclick'=>「myajax_function(this)」,然後在myajax_function中使用這個。您可以將數據作爲數據參數存儲在主元素中。或者你可以使用DOM函數來訪問這個的子元素。 – enRaiser