简体   繁体   English

使用Joomla 2.5获得$ _POST

[英]Getting $_POST with Joomla 2.5

Here is my form, it looks correct, so this shoulnd't be an issue , I also removed the enctype to make sure it wasn't that. 这是我的表格,它看起来是正确的,所以这不是一个问题,我也删除了enctype以确保它不是那个。

    <form action="<?php echo JRoute::_('index.php?option=com_woo&task=hello.create'); ?>" enctype="multipart/form-data" method="post">
      <p>
        Project Name : 
        <input style="width:30%;" name="name" id="name"/>
        <input style="display:none;" id="user_id" name="user_id" value="<?php echo $user->id;?>"/>
        <input style="display:none;" id="county" name="county"/>
        <input style="display:none;" id="state" name="state"  />
      </p>
      <button type="submit" class="btn-green" id="select_county">Create Project</button>
    </form>

Inside ControllerHello 在ControllerHello里面

    public function create()
    {
       $jinput = JFactory::getApplication()->input;
       $foo = $jinput->get('state', '', 'filter');
       print_r($foo);
       die;
    }

Returns "NULL" 返回“NULL”

Any ideas? 有任何想法吗?

You can try this - 你可以尝试这个 -

$input = JFactory::getApplication()->input;
$post_array = $input->getArray($_POST);
$input = new JInput;
$name = $input->get('name', '', 'post');
$country = $input->get('country', '', 'post');
// etc.

Then you can use a series of JInput class methods for specific purposes: 然后,您可以使用一系列JInput类方法用于特定目的:

 // method      integer  getInt()       getInt($name, $default = null)    Get a signed integer.
 // method      integer  getUint()      getUint($name, $default = null)   Get an unsigned integer.
 // method      float    getFloat()     getFloat($name, $default = null)  Get a floating-point number.
 // method      boolean  getBool()      getBool($name, $default = null)   Get a boolean.
 // method      string   getWord()      getWord($name, $default = null)
 // method      string   getAlnum()     getAlnum($name, $default = null)
 // method      string   getCmd()       getCmd($name, $default = null)
 // method      string   getBase64()    getBase64($name, $default = null)
 // method      string   getString()    getString($name, $default = null)
 // method      string   getHtml()      getHtml($name, $default = null)
 // method      string   getPath()      getPath($name, $default = null)
 // method      string   getUsername()  getUsername($name, $default = null)

I think the best option to get entire $_POST with JInput is 我认为使用JInput获得整个$ _POST的最佳选择是

JFactory::getApplication()->input->post->getArray();

If you want to get specific array (called 'jform' for example) from the request, then use 如果要从请求中获取特定数组(例如,称为“jform”),请使用

JFactory::getApplication()->input->get('jform', array(), 'ARRAY');

You can get Values from a Specific Super Global 您可以从特定超级全球获取价值

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

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

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

For more information go to Retrieving request data using JInput 有关更多信息,请转至使用JInput检索请求数据

You could try changing your form action to: 您可以尝试将表单操作更改为:

<?php echo JRoute::_('index.php?option=com_woo&view=hello&task=create');

Since your task is called create not hello.create it might work better this way.... 由于你的任务被称为create not hello.create,它可能会更好地工作....

Then I always just did 然后我总是这样做

$post = JRequest::get('post');
print_r($post['state']);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM