0
我一直在寻找小时解决这个问题。我有一个控制器,因此标准组件:Joomla 2.5 mootools ajax - 发送参数到组件
defined('_JEXEC') or die;
jimport('joomla.application.component.controller');
jimport('joomla.environment.request');
class GetajaxController extends JController
{
function test()
{
$jinput = new JInput();
$myvar = $jinput->getVar('eventname');
print_r($_REQUEST);
$a = $_GET['eventname'];
$event = JRequest::getVar('eventname') ;
$client = JRequest::getVar('client') ;
echo "CLIENT:".$client." EVENT:".$event."*".$myvar;
}
}
(我一直在尝试多种解决方案,这就是为什么有多余的废话在那里,但相关的代码仍然存在)
我把它从正是如此自定义模块:
$urlA = "index.php?option=com_getajax&task=test&format=raw";
$document = JFactory::getDocument();
$document->addScriptDeclaration("
function runButton() {
var data = 'eventname=aName&client=aClient';
var url='$urlA';
var request = new Request({
url: url,
data: data,
method:'post',
onSuccess: function(responseText){
document.getElementById('xml_result').innerHTML=responseText;
}
}).post('eventname=foo&client=baR'); // ORIGINALLY HAD IT AS JUST .post()
request.setHeader('eventname', 'sdfsdfsdf'); // ADDED
}
");
响应返回只包含硬编码“客户:...事件”减去变量。换句话说,我得到了一个响应,整个事情的ajax/jquery部分工作正常,只是我似乎无法为我成功发送参数给组件。 (或至少,在组件中检索它们)
我已经firebugged它,他们没有在响应。我甚至硬编码的网址,并在控制器中使用一个简单的$ _GET没有成功;
$urlA = "index.php?option=com_getajax&task=test&format=raw&event=foo&client=bar";
我试过了,没有sef urls。你可以从控制器看到我已经尝试了各种方法来捕获传递的参数。我也尝试了'get'和'post'。
我试过所有通常发布的解决方案顺便说一句,所以我认为这与joomla以一些晦涩的方式让网址参数出来,只有开发人员的母亲可以欣赏。
- 在firebug中,有一个'x'参数显示我没有发送,看起来是空的。不知道这是否重要。
任何帮助将是伟大的。
由于提前,杰夫