Prendere il valore di un select! | PHP

Topic: Pubblico - Composto da 12 Posts di 2 Utenti.

06 Dicembre, 2011 17:19 #1
kalo_carracino
Utente

kalo_carracino
Registrato: Dec, 2011
Posts: 8
Offline

Salve a tutti, son nuovo nel forum e nel mondo del php anche se lo sto studiando da qualche mese
Sto creando un applicazione e mi son ritrovato di fronte ad un bivio.
Questo è il codice dove all'interno di una riga di una tabella ho un select che mi dà la possibilità di indicare il codice di un cliente precedentemente inserito (e funziona)

 1<td colspan="2" width="20%"> Cod Cliente
 2                                                
 3<?php 
 4    
 5                                                                //Recupero i dati dal DB
 6                                                                $strSQL = "SELECT cod_cliente FROM clienti WHERE (user='$username' OR id_azienda='$id_azienda') ORDER BY 'cod_cliente'";
 7                                                                
 8                                                                $result = mysql_query($strSQL);        
 9                                                                $select = '<select name="cod_cliente">        ';                                                while($row = mysql_fetch_assoc($result))
10                                                                $select .= '<option value="' . $row['cod_cliente'] . '">' . $row['cod_cliente'] . '</option>';
11
12                                                                        $select .= '</select>';
13
14echo $select; // stampi questa variabile dove vuoi, contiene il menù
15                                                
16?>

Successivamente in un altro campo della tabella dovrei, in base al valore selezionato nel select, far visualizzare la PI del cliente.
Dunque se nel select scelgo il codice cliente 1 mi dovrebbe visualizzare automaticamente nel campo successivo la PI del cliente 1

come posso fare?

06 Dicembre, 2011 17:52 #2
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

Ciao,
perdonami, ma cosa sarebbe la "PI"?


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

06 Dicembre, 2011 17:53 #3
kalo_carracino
Utente

kalo_carracino
Registrato: Dec, 2011
Posts: 8
Offline

Partita Iva... ogni cliente nel database ne ha una...

06 Dicembre, 2011 17:59 #4
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

Ok, allora partiamo dal concetto che qualsiasi campo ti serva tirare fuori dalla tua tabella lo devi specificare nella select.

Per cui, se scrivi

1SELECT cod_cliente FROM...
stai prendendo solo il cod_cliente;

se scrivi

1SELECT cod_cliente, partita_iva FROM...
prendi cod_cliente e partita_iva;

se invece scrivi

1SELECT * FROM ...
prendi tutti i campi.

Abbiamo un bel tutorial su PHP/MySQL ... prova a dargli un'occhiata, potrebbe tornarti utile :)

Se ti servono altre delucidazioni, chiedi pure.

Ultima modifica 06 Dicembre, 2011 17:59 di re-verse


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

06 Dicembre, 2011 18:03 #5
kalo_carracino
Utente

kalo_carracino
Registrato: Dec, 2011
Posts: 8
Offline

no no...non hai capito... :)
allora quello lo so fare tranquillamente..
vediamo se riesco a spiegarti meglio il mio problema..
ho una riga e due colonne:
in una ho un menu a tendina (menù di opzioni) con tutti i codici dei clienti inseriti nel database
nell'altra la PI

mi serve un metodo per prendere il valore che ho dichiarato nel menu a tendina e visualizzare la PI del cliente selezionato
dunque se nella prima colonna dal menu a tendina scelgo il valore 2 mi deve comparire in automatico la PI del cliente 2 nella seconda colonna!!
penso di essere stato chiaro :)

Sono ad un buon livello di php e mysql almeno le basi le so :P

06 Dicembre, 2011 18:05 #6
kalo_carracino
Utente

kalo_carracino
Registrato: Dec, 2011
Posts: 8
Offline

il menu a tendina funziona e mi indica (in questo caso) 1, 2 e 3
perchè ho solo 3 codici inseriti.. ma non so come far visualizzare la PI collegata al codice nella seconda colonna

06 Dicembre, 2011 18:49 #7
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

Beh, sai cosa? dopo una decina di anni di esperienza nel settore, comincerai anche tu a non dare niente per scontato :)... poi mi dirai un giorno ;) ... ma torniamo a noi.
La faccenda la puoi risolvere in due modi, tutti e due i modi richiedono una conoscenza rispettivamente, di base ed intermedia, di javascript.

Nella prima ipotesi ti suggerirei di inserire un 'onChange' al menu a tendina in modo tale che quando selezioni un cliente la pagine venga chiamata con l'argomento cod_cliente ed lo gestirai in questo modo:

Il primo menu a tendina lo carichi col cod_cliente già selezionato
Il secondo menu a tendina lo carichi filtrandolo per cod_cliente

Per la seconda ipotesi invece avresti bisogno di caricare tutto il secondo menu a tendina attraverso una chiamata asincrona (AJAX)... però io mi terrei sulla prima ipotesi, per cominciare.


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

07 Dicembre, 2011 17:50 #8
kalo_carracino
Utente

kalo_carracino
Registrato: Dec, 2011
Posts: 8
Offline

mmmm ok...ora mi vedo questo 'onChange'
però io non ho un secondo menu a tendina.
la partita iva va inserita nella seconda cella affianco al codice cliente.. (ho da inserire altri dati in celle successive sempre collegate al cod_cliente, ma una volta che ne faccio una i passi son gli stessi)
dunque in pratica alla scelta nel menu a tendina io dovrei riversare in una variabile il cod_cliente inserito nel menu a tendina e in base a quello scrivere in php un codice che faccia in modo che mi visualizzi la PI del cliente

tipo
$cod_cliente= codice cliente inserito nel menu a tendina
e poi fare una select che mi selezioni la partita iva dove cod_cliente = cod_cliente

non so però come passare a $cod_cliente il codice scelto nel menu a tendina!

se mi dici che con onChange posso mi metto a guardarlo immediatamente :)
per ora ti ringrazio

07 Dicembre, 2011 19:08 #9
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

La logica è la stessa: Selezioni il cliente dal menù a tendina e la pagina deve caricarti il resto dei campi.

Guarda, ti passo un indizio, te la butto giù lì (non garantisco che funzioni ;) ) :
nel codice del

1<select><option>
... includi questo comando:

1<select onChange="location.href='#?cod_cliente='+this.value;">
2<option>...

Fammi sapere se succede qualcosa quando selezioni un cliente dal menu a tendina con questo codice

Ultima modifica 07 Dicembre, 2011 19:10 di re-verse


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

07 Dicembre, 2011 19:26 #10
kalo_carracino
Utente

kalo_carracino
Registrato: Dec, 2011
Posts: 8
Offline

refresha la pagina ma non fa niente,
il problema è che sicuramente non mi passa nessun dato alla variabile cod_cliente.
se io nella seconda cella inserisco
$codicec=$cod_cliente;
echo "".$codicec."";

mi dà errore perchè non trova cod_cliente.

ora provo a fare una select per vedere se mi dice qualcosa

Condividi su:

Loggati o Registrati per replicare