2012-02-08 12 views
5
<?php echo validation_errors(); ?> 

<?php echo form_open('form'); ?> 
    <input type="text" name="something" /> 
    <input type="submit" value="submit"/> 
</form> 

trovo che non v'è alcuna "azione" e "metodo" come inInvece di azione Forma e metodo

<form action="/application/controler/somepage.php" method="POST"> 
</form> 

in cui vorrei ottenere il valore immesso nella casella di testo dopo il il pulsante submit viene premuto. Come posso fare lo stesso (ottenere il valore inviato tramite POST o GET) come nel primo?

Inoltre, nel caso in cui vorrei ottenere il valore passato nell'URL http://localhost/index.php/something?value=75&today=Wed

che è 75 e mercoledì, per esempio.

+1

migliore utilizzo 'Form_Close()' invece di ''. parere personale per evitare problemi di "pulizia del codice" IDE. – Joseph

risposta

6

Le CodeIgniter Form Helper Documentation afferma che il primo parametro di consegnare nella funzione form_open() è l'URL nel quale stai postando. URL semantica è una grande parte di CodeIgniter, se pubblichi in una posizione all'interno l'utilizzo dell'applicazione:

<?= form_open('index.php/controller/function/param1/param2');?> 

CodeIgniter usa method='post' per impostazione predefinita.

CodeIgniter non supporta in modo nativo il parametro method='get' a causa del modo in cui gestisce gli URL. Invece di un URL:

http://localhost/myapp/index.php/something?value=75&today=Wed 

Il modo CodeIgniter sarebbe:

http://localhost/myapp/index.php/mycontroller/myfunction/75/Wed 

Si potrebbe quindi definire una funzione nel vostro controller come

function myfunction($value, $day) 
{ 
//do whatever you want with the $value and the $day here. 
} 
+0

Non ho mai provato a utilizzarlo, ma ora CI sembra supportare GET abbastanza bene. – stef

0

semplicemente .. se si vuole cambiare metodo per ottenere è necessario aggiungere l'attributo a form_open()

$attribute['method'] = 'get'; 
echo form_open(THE_ACTION_URL, $attribute); 

o. è possibile rendere il proprio aiuto per il metodo più veloce

function form_open_get($action, $attribute = NULL, $hidden = NULL) 
{ 
    $attribute['method'] = 'get'; 
    return form_open($action,$attribute,$hidden); 
} 
16

Prova questo:

echo form_open('controller/somepage', array('method'=>'get')); 
+2

Rientra il tuo codice aggiungendo 4 spazi prima o mettendolo tra i caratteri ''. – Joel

Problemi correlati