2012-11-21 16 views
5

Hier ist mein Formular, es sieht korrekt aus, also sollte das kein Problem sein, ich habe auch den Enctype entfernt, um sicherzustellen, dass es das nicht ist.

<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> 

Innen ControllerHello

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

Returns "NULL"

Irgendwelche Ideen?

+0

Wie pro Ihrem Eingabefeld 'state' hat Sets' Display Retrieving request data using JInput gehen: none', wann immer das Formular wird es die leere Eingabe senden in 'state', das ist der Grund, warum Sie' null' statt Wert bekommen. – Toretto

Antwort

4
$input = new JInput; 
$name = $input->get('name', '', 'post'); 
$country = $input->get('country', '', 'post'); 
// etc. 

Dann können Sie eine Reihe von JInput Klassenmethoden für bestimmte Zwecke verwenden:

// 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) 
-2

könnten Sie versuchen, Ihre Form Aktion zu ändern:

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

Da Ihre Aufgabe aufgerufen wird create nicht hello.create es besser, auf diese Weise funktionieren könnte ....

Dann habe ich immer nur

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

'JRequest' ist ab Joomla 1.7 veraltet. Nicht, dass Sie falsch liegen, aber es ist besser, etwas wie das Folgende zu verwenden: '$ post = new JInput ($ _ POST);' für Joomla 2.5 und höher;) – Lodder

+0

Lodders korrekt. Weitere Informationen zu JInput http://docs.joomla.org/Retrieving_request_data_using_JInput finden Sie hier –

8

Sie können versuchen, diese -

$input = JFactory::getApplication()->input; 
$post_array = $input->getArray($_POST); 
3

Ich denke, die beste Option ganze $ _POST zu bekommen mit JInput

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

ist Wenn Sie bestimmte Array (so genannte ‚jform erhalten möchten 'Beispiel) aus der Anfrage, dann verwenden Sie

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

Sie können erhalten Werte von einer bestimmten Super-Globale

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

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

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

Weitere Informationen

Verwandte Themen