Php 在JOOMLA收到ajax呼叫?
我将两个不同的语句绑定在一起,以获得JOOMLA中ajax的POST结果 第一个JOOMLA native语句工作不正常。我还尝试了get()getVar()。不工作。它返回空值Php 在JOOMLA收到ajax呼叫?,php,json,joomla,joomla2.5,joomla-extensions,Php,Json,Joomla,Joomla2.5,Joomla Extensions,我将两个不同的语句绑定在一起,以获得JOOMLA中ajax的POST结果 第一个JOOMLA native语句工作不正常。我还尝试了get()getVar()。不工作。它返回空值 $vJson=$app->input->getCmd("chk"); 但第二个是好的,并显示结果 $vJson = file_get_contents('php://input'); 下面是客户端代码 xmlhttpp.open("POST","index.php?option
$vJson=$app->input->getCmd("chk");
但第二个是好的,并显示结果
$vJson = file_get_contents('php://input');
下面是客户端代码
xmlhttpp.open("POST","index.php?option=com_hello&controller=SetComObjects",true);
xmlhttpp.setRequestHeader("Content-Type", "application/json");
xmlhttpp.onreadystatechange=function()
{
if (xmlhttpp.readyState==4 && xmlhttpp.status==200)
{
alert("haha");
}
}
xmlhttpp.send(chk);
我的控制器代码
public function execute()
{
$app=JFactory::getApplication();
//following line return null in str_json
$str_json=$app->input->getCmd("chk");
//$model->_buildQuery();
//but following statement is giving OK result
$str_json = file_get_contents('php://input');
$str_json=json_decode($str_json);
试试这个
var data = "chk="+chk;
jQuery.ajax ({
type: "POST",
url: "index.php?option=com_hello&controller=SetComObjects?",
data: data,
dataType: "json",
success: function(data) {
var obj = jQuery.parseJSON(data);
alert( obj.name);//if its have a name
}
});
您没有将chk
作为参数传递给控制器,那么它是如何到达那里的
希望能有所帮助。我认为getCmd方法是导致问题的原因。 您可以阅读更多的
JInput::get()
我建议您使用:
$app->input->getArray($_POST);
您还可以添加控制器代码吗?添加了控制器代码。我们的方法似乎可行,但所有的括号都是使用file\u get\u contents('s)剥离的“[{”XOID:“1”,“XPID:“1”,“…”php://input“);--------------和------------------”XOID1XPID1XobjectNameSin………通过您的方法文件获取内容()是否正在读取外部url?您读取的内容是什么,bcoz ajax语句从不剥离任何json数据如果您的返回是json格式的,则不需要在php中对其进行解码,只需在js$vJson=JRequest::getVar('chk');--------------$vJson=$app->input->get(“chk”,“null”)中执行即可上面是joomla的两个本机函数,用于访问get和post变量。第一个可以,但第二个是删除斜杠。所以我替换了它。非常感谢您的帮助…问题解决了。很高兴听到这个消息祝您好运:)