【问题标题】:Get Dynamic Post Fields/Data via JInput in Joomla通过 Joomla 中的 JInput 获取动态帖子字段/数据
【发布时间】:2014-02-23 21:53:41
【问题描述】:

基本上正如问题所述,我需要在 Joomla 2.5/3.xx 中获取“POST”数据,并且我希望通过 JInput(镇上的新话题)获得它。

现在一切都很好,花花公子,直到我的进一步要求需要这些字段/数据是动态的,即。它(字段)旨在根据情况进行更改,我无法知道字段将是什么,我知道如何在核心 php 中执行此操作,但 JInput 并非如此,就是这样,如何我做吗...

【问题讨论】:

    标签: joomla joomla2.5 jinput


    【解决方案1】:

    您可以为此使用 Jinput

    $jinput = JFactory::getApplication()->input;
    

    从特定的超级全球获取价值

    $foo = $jinput->get->get('varname', 'default_value', 'filter');
    $foo = $jinput->post->get('varname', 'default_value', 'filter');
    $foo = $jinput->server->get('varname', 'default_value', 'filter');
    

    请参阅此文档以获取更多详细信息: https://docs.joomla.org/Retrieving_request_data_using_JInput

    【讨论】:

      【解决方案2】:

      Joomla3 提供两个功能:

      JInputJSON(使用 getRaw() 方法扩展 Jinput)

      JResponseJson(将数据转换为 JSON 并返回)

      请求数据:

      var jsonString = '{"test":"1"}';
      var data = { ajaxrequest : jsonString }
      

      Joomla:

      $jinput = JFactory::getApplication()->input;
      $json = $jinput->getRaw('ajaxrequest'); // returns {\"test\":\"1\"}
      $data = json_decode($json); // json decode, returns data object
      
      // do stuff..
      
      echo new JResponseJson($response);
      

      【讨论】:

        【解决方案3】:

        试试这个

            $post = JFactory::getApplication()->input->post;
        

        【讨论】:

          【解决方案4】:

          好吧,我知道这已经有一段时间了,但我今天遇到了这个问题,并为POST 表单找到了 Joomla 解决方案。

          $input = JFactory::getApplication()->input;
          $fieldname = $input->post->get('fieldname');
          

          这与使用$fieldname = $_POST['fieldname']; 基本相同,只是您可以获得留在Joomla API 中的额外好处。

          【讨论】:

            【解决方案5】:

            JInput 不提供此类功能;所以你可能不得不使用 $_POST。

            如果您可以将输入采用数组的形式(并使用 JInput::getArray() )或 json 编码的对象(您使用 json_decode(JInput::getString())),则可以绕过它

            后者非常有效,我已在许多项目中成功使用它。

            【讨论】:

            • 所以 atm,我在 Jquery 中使用 .serialize() 函数直接序列化整个表单并通过 ajax 提交,你的意思是说,我首先在一个对象中获取整个数据,然后然后 json 对对象进行编码并传递它,如果是这种情况,那么对我来说似乎有点尴尬,让我们看看是否有人有不同的看法/意见。
            • 如果他们这样做了,那就错了。开玩笑。但是你可以使用 jQuery 中的 serializeArray() 和服务器上的 JInput::getArray()。
            • 我刚刚使用了 Global POST,所以我得到了这个结果,这很好,直到他们开始提供这个功能。
            猜你喜欢
            • 2012-10-24
            • 1970-01-01
            • 1970-01-01
            • 2018-01-22
            • 1970-01-01
            • 1970-01-01
            • 2019-10-25
            • 2017-04-23
            • 1970-01-01
            相关资源
            最近更新 更多