gpt4 book ai didi

php - 如何在 Joomla 组件中使用 Jquery AJAX?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:13 25 4
gpt4 key购买 nike

我正在用 Joomla 开发网站,同时我遇到了一个问题,请帮助我解决以下问题

这是我的组件文件夹结构

htdocs/Joomla/administrator/component/com_test/test.php,controller.php
models/test.php
controllers/test.php
views/test/view.html.php
view/test/tmpl/default.php

现在在 view.html.php 中,我创建了一个表单,其中我使用 jquery ajax 代码进行用户名可用性检查

但我不知道如何组合所有的东西来得到 usename 是否可用的结果

这是我在 test/view.html.php 上编写的代码

<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#username").change(function () {
var usr = jQuery("#username").val();
if (usr.length >= 2) {
jQuery("#status").html('<img src="loader.gif" align="absmiddle">&nbsp;Checking availability...');
jQuery.ajax({
type: "POST",
url: "index.php?option=com_test&view=check_user",
data: "username=" + usr,
success: function (msg) {
jQuery("#status").ajaxComplete(function (event, request, settings) {
if (msg == 'OK') {
jQuery("#username").removeClass('object_error'); // if necessary
jQuery("#username").addClass("object_ok");
}
else {
jQuery("#username").removeClass('object_ok'); // if necessary
jQuery("#username").addClass("object_error");
jQuery(this).html(msg);
}
});
}
});
}
});

<script>

<form action="" method="post" name="addUserForm" id="addUserForm" >
<table width="100%" border="0" cellpadding="4" cellspacing="2">
<tr>
<th >User Name :</th>
<td ><input type="text" name="username" id="username" size="50">
<span id="status"></span>
</td>
</tr>
</table>
</form>

我已经为上面的操作创建了下面的文件夹结构,请告诉我哪里错了

view/check_user/view.html.php
views/check_user/tmpl/default.php

check_user/view.html.php 中的代码

<?php

// no direct access
defined('_JEXEC') or die('Restricted access');

jimport( 'joomla.application.component.view');

/**
* HTML View class for the advertising component
*/
class TestViewCheck_user extends JView
{
/**
* Default display function
*/
function display($tpl = null)
{
$testController = new TestController();
// Make an object of Main Model class contains Main functions
$testModel = $testController->getModel('test');
$userName = JRequest::getVar('username');
parent::display($tpl);
}
}
?>

但是当我运行这段代码时...为什么http://localhost/Joomla/includes/js/joomla.javascript.js 文件运行无限次.. 最后给出 4 个错误

现在我必须修改/添加更多???请指导我....

请引用任何有用的链接,教你如何一步一步地创建组件......这对我很有帮助

非常感谢

最佳答案

我找到了解决方案。您必须防止 joomla 将模板和模块附加到您的输出 ajax 数据。为此,您必须在显示数据后添加此代码

//after $this->display($tpl);

global $mainframe;

$mainframe->close();

关于php - 如何在 Joomla 组件中使用 Jquery AJAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157488/

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