Joomla: Passing a variable into getInput()

Gisto picture Gisto · May 8, 2012 · Viewed 8.8k times · Source

I'm building a backend component (1.6 / 1.7 / 2.5) where I need to pass a variable from another view into a field in a new record. Variable passing is working fine.

My problem is using getInput().

To start with different doc pages have different amounts and formatting of parameters - confusing! For example:

http://docs.joomla.org/API16:JForm/getInput: getInput($name, $group= '_default', $formControl= '_default', $groupControl= '_default', $value=null)

vs

http://docs.joomla.org/JForm::getInput/1.6:

public function getInput (
    $name 
    $group=null 
    $value=null
)

The problem:

I just need to pass a variable as a default value, something like:

echo $this->form->getInput('id', $value=$this->userID );?>

The above code makes the input field disappear. If I take out the $value=$this->userID the input field shows up though obviously doesn't have any default value. I've also tried:

$value=$this->userID;
echo $this->form->getInput('id', $value );

And same problem, the input field goes away. I tried a few other variations but basically if I try to put anything else within getInput() it doesn't work nor can I find any good working examples of how to use these other parameters.

What am I doing wrong?

Thanks!

Answer

nickb picture nickb · May 8, 2012

According to the source, this is the correct API:

getInput($name, $group = null, $value = null)

And getInput() just calls getField():

getField($name, $group = null, $value = null)

Which means you should be doing this to set a default value:

echo $this->form->getInput('id', null, $this->userID ); // Returns the $field->input String

Or:

$field = $this->form->getField('id', null, $this->userID ); // Returns the JFormField object