2010-11-06 13 views
10

Sono nuovo di PHP CodeIgniter,come ottenere i valori checkbox utilizzando PHP codeigniter nel controller

come ottenere casella valori usando php Codeigniter in Controller.

Ecco le caselle di controllo, voglio ottenere i valori della casella di controllo in base al nome come "businessType" nel controller utilizzando il metodo di post.

<input type="checkbox"name="businessType" value="1"> 
<input type="checkbox"name="businessType" value="2"> 
<input type="checkbox"name="businessType" value="3"> 

prega di suggerire

grazie

risposta

37
<input type="checkbox" name="businessType[]" value="1"> 
<input type="checkbox" name="businessType[]" value="2"> 
<input type="checkbox" name="businessType[]" value="3"> 

fare $data = $this->input->post('businessType');

si dovrebbe vedere che $ i dati è un array, e spettacoli diversi va lue. Prova a fare var_dump($data); per vedere cosa c'è dentro la matrice.

var_dump()

7

Se solo una di queste caselle di controllo può essere selezionato alla volta, è necessario utilizzare un gruppo di pulsanti di opzione (type="radio") invece. Presumo che questo è quello che stai cercando di fare dal momento che il name s di tutti gli ingressi sono gli stessi.

per ottenere il valore del gruppo di pulsanti di opzione o la radio, utilizzare:

$this->input->post('businessType') 

Edit:

Se si sta in realtà vogliono caselle di controllo, è necessario nominarli tutti qualcosa di diverso:

<input type="checkbox"name="businessType1" value="1"> 
<input type="checkbox"name="businessType2" value="2"> 
<input type="checkbox"name="businessType3" value="3"> 

E poi utilizzare lo stesso metodo posto di prima:

$this->input->post('businessType1') //the first checkbox's value 
$this->input->post('businessType2') //the second 
$this->input->post('businessType3') //the third 
+0

, ma con l'aiuto di questo come faccio a ottenere più valori di selezione? – Vicky

+0

Ah, se si desidera effettivamente ottenere più valori, è necessario disporre di un nome diverso per ogni casella di controllo. Vedi sopra. – davidscolgan

+0

questo metodo renderà piuttosto difficile lavorare con le caselle che vengono generate dinamicamente. Perché non utilizzare il metodo suggerito da @tpae? – aphoe

-1

Come suggerito da dvcolgan (+1), i pulsanti di opzione sono quelli che dovresti usare, ecco un esempio avvolto in un fieldset.

tuo HTML

<fieldset> 
<legend>Choose Business Type:</legend><br> 
<input type="radio" name="businessType" value="1"> 
<input type="radio" name="businessType" value="2"> 
<input type="radio" name="businessType" value="3"> 
</fieldset> 

Poi, nel tuo php

$businessType = $this->input->post("businessType"); 
+0

ma con l'aiuto di questo come otterrò più valori di selezione? – Vicky

6

bretelle Put dopo ogni nome. Assegnare a ciascuna un valore unico:

<input type="radio" name="businessType[]" value="1"> 
<input type="radio" name="businessType[]" value="2"> 
<input type="radio" name="businessType[]" value="3"> 

farli così:

substr(implode(', ', $this->input->post('businessType')), 0) 
Problemi correlati