我没有很多PHP,JQuery和Ajax的经验。我试图在Joomla中创建一个像https://www.w3schools.com/php/php_ajax_livesearch.asp一样工作的模块。
我已经使用过一些关于如何为Joomla创建模块的东西。我从他们复制的模块几乎完全符合我的要求。返回基于搜索框的文章链接。唯一的问题是它不是实时搜索,而是提交。
这是发送xmlhttprequest的代码:
(function ($) {
$(document).on('click', 'input[type=submit]', function () {
var value = $('input[name=data]').val(),
request = {
'option' : 'com_ajax',
'module' : 'ajax_search',
'data' : value,
'format' : 'raw'
};
$.ajax({
type : 'POST',
data : request,
success: function (response) {$('.search-results').html(response);}
});
return false;
});
})(jQuery)
未捕获的ReferenceError:未定义请求
进一步通过js文件,我发现了这条断线
g.send(b.hasContent&& b.data || null),
这就是给我404错误,所以它没有正确收到请求
以下是修改后的代码I尝试工作
(function ($) {
$(document).ready(function () {
$('input[name=data]').keyup(function() {
var value = $('input[name=data]').val(),
request = {
'option' : 'com_ajax',
'module' : 'ajax_search_ver2',
'data' : value,
'format' : 'raw'
};
$.ajax({
type : 'POST',
data : request,
success: function (response) {$('.search-results').html(response);}
});
return false;
});
});
})(jQuery)
此代码可以正常工作并发送请求。但是,当我尝试将其转换为keyup
时,就像w3schools示例一样,它在请求时遇到问题。我用chrome开发人员工具调试了代码,它给了我一个错误
我之前看过的回答是关于"为什么你没有做到这一点......"再一次,我在这里只是一个初学者。我试图了解逻辑以及如何更改几行代码来为keyup
事件提交提交按钮可能会破坏xmlhttprequest
。任何帮助表示赞赏。如果您需要进一步的输入,请告诉我。