Php 在JOOMLA收到ajax呼叫?

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

我将两个不同的语句绑定在一起,以获得JOOMLA中ajax的POST结果

第一个JOOMLA native语句工作不正常。我还尝试了get()getVar()。不工作。它返回空值

  $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变量。第一个可以,但第二个是删除斜杠。所以我替换了它。非常感谢您的帮助…问题解决了。很高兴听到这个消息祝您好运:)