我在Joomla getuser.php
创建了一个外部文件,并将其放在administrator/getuser.php
包含数据库查询
<?php
$q=$_GET["q"];
$db = JFactory::getDBO();
// Create a new query object.
$query = $db->getQuery(true);
$query->select($db->nameQuote('product_name'));
$query->from('#__virtuemart_products_en_gb');
$query->where($db->nameQuote('virtuemart_product_id').' = '.$db->quote($q));
$db->setQuery($query);
$result = $db->loadResult();
echo "<tr>";
echo "<td>" . $result['product_name'] . "</td>";
echo "</tr>";
?>
并使用位于administrator / components / com_virtuemart / views / product / tpl / product_edit_information.php的ajax从product_edit_information.php
调用它
代码是
<form>
<select name="users" onChange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="7745">YA Ali</option>
<option value="7746">Qasim</option>
</select>
</form>
<br />
<div id="txtHint"><b>Person info will be listed here.</b></div>
<script>
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
错误是
致命错误:未找到“JFactory”类 第3行的C:\ xampp \ htdocs \ bc22 \ administrator \ getuser.php
这个错误的原因是什么 我如何在joomla中添加外部文件
我也经历过这个但是无法理解...... http://docs.joomla.org/Adding_AJAX_to_your_component
defined('_JEXEC') or die('Restricted access');
当我把它放在getuser.php的顶部时,它会给我错误
限制访问
当我echo $q=$_GET["q"]; // output 7745 and 7746
<option value="7745">YA Ali</option>
<option value="7746">Qasim</option>
但是在找不到jFactory错误之后
抱歉我的英语不好
答案 0 :(得分:5)
您应该在代码顶部添加此代码:
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
if (file_exists(dirname(__FILE__) . '/defines.php')) {
include_once dirname(__FILE__) . '/defines.php';
}
if (!defined('_JDEFINES')) {
define('JPATH_BASE', dirname(__FILE__));
require_once JPATH_BASE.'/includes/defines.php';
}
require_once JPATH_BASE.'/includes/framework.php';
require_once JPATH_BASE.'/includes/helper.php';
require_once JPATH_BASE.'/includes/toolbar.php';
问题是你没有包含Joomla框架和使用JFactory。如果任何函数包含错误,则应包含该函数的Joomla路径
使用Restricted access
define('_JEXEC', 1);
问题