我只是在我的Joomla TPJOBS组件中添加了一个新功能,虽然它不是一个好的/完整/活动的组件,但只是我添加了一个用户名可用性检查器,但它不起作用,因为它可能是由于在这个组件中。
查看网站:http://tinyurl.com/72rx7af
[点击查看无效的可用性]
我的Joomla组件目录是:\ public_html \ components \ com_tpjobs \
您可以在此处获取文件http://forum.joomla.org/download/file.php?id=88705
编辑tpjobs.html.php(退出)和username_validate.php(已创建)
我的Javascript AJAX代码:属于tpjobs.html.php
<script type="text/javascript">
<!--
//function to create ajax object
function pullAjax(){
var a;
try{
a=new XMLHttpRequest()
}
catch(b)
{
try
{
a=new ActiveXObject("Msxml2.XMLHTTP")
}catch(b)
{
try
{
a=new ActiveXObject("Microsoft.XMLHTTP")
}
catch(b)
{
alert("Your browser broke!");return false
}
}
}
return a;
}
function username_validate()
{
site_root = '';
var x = document.getElementById('username');
var msg = document.getElementById('msg');
user = x.value;
code = '';
message = '';
obj=pullAjax();
obj.onreadystatechange=function()
{
if(obj.readyState==4)
{
eval("result = "+obj.responseText);
code = result['code'];
message = result['result'];
if(code <=0)
{
x.style.border = "1px solid #FF0084";
msg.style.color = "#FF1A00";
}
else
{
x.style.border = "1px solid #008C00";
msg.style.color = "#73880A";
}
msg.innerHTML = message;
}
}
obj.open("GET",site_root+"username_validate.php?username="+user,true);
obj.send(null);
}
//-->
</script>
<style>
#username{border: 1px solid #000;}
</style>
TPJobs组件下的PHP文件
<?php
defined('_JEXEC') or die('Restricted access');
$user = strip_tags(trim($_REQUEST['username']));
if(strlen($user) <= 0)
{
echo json_encode(array('code' => -1,
'result' => 'Invalid username, please try again.'
));
die;
}
$db =& JFactory::getDBO(); //get database object
$db->setQuery("Select username FROM #__users where username = '$user'")
$db->query(); //do actual query
$result = $db->getAffectedRows(); //return affected rows
if($result)
{
echo json_encode(array('code' => 1,
'result' => "Success,username $user is still available"
));
die;
}
else
{
echo json_encode(array('code' => 0,
'result' => "Sorry but username $user is already taken."
));
die;
}
die;
?>
答案 0 :(得分:0)
我注意到有两个问题
第一个是你的ajax网址似乎不正确。 组件文件夹名称是com_tpjobs,在您的URL中它是components / tpjobs 它应该是components / com_tpjobs /.....
第二点是,在通过ajax直接调用文件时,它不会加载joomla框架,因此你不能在其中使用joomla类和函数。
要获得此功能,您必须在ajax文件的顶部包含几行 见How to extend Joomla! to my custom PHP file