Aggiungere codice javascript alla funzione formSelect

Salve a tutti, stavolta inciampo in un altro problema. Ho creato la classe auto la classe marca e la classe modello, ora quando inserisco una nuova auto a seconda della marca che scelgo (tramite una select) il sistema mi deve caricare solo i modelli registrati nel data base con l'id della marca.

Ecco il codice fatto per la select della marca:

<p><label>Marca:<br />

<?php echo $this->formSelect('marca',$this->auto['marca'],null,$m)?></label></p>

ora in questa select dovrei associare una query per la selezione dinamica dei modelli....come posso fare???

inviato 8 anni fa
reve
reve
1
X 0 X

Devi associare all'evento onchange della select un javascript che ti fa l'invio (submit) del form. Nel controller devi  verificare se è stato premuto il pulsante di submit. Se non è stato premuto significa che è stata aggiornata una select. Allora fai le opportune query per aggiornare i dati delle select e mostri nuovamente la pagina corrente.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ciao Gianni come al solito sei tu che mi guidi...comunque ho associato l'evento onChange alla select con il seguente codice javascript:

function select(me){

   document.form.submit();

}

che mi riporta nel controller della pagina, ora cio che non so fare è controllare che sia stato premuto il pulsante submit, e fare le opportune query, potresti postami un esempio di codice?

risposto 8 anni fa
reve
reve
1
X 0 X

Quando premi un bottone di submit, la coppia "nome_bottone" -> "etichetta" (vale) viene inviata al server (via POST o GET a seconda del form.

Per verificarne la presenza all'interno di una Action di un Controller basta fare così:

if($this->_hasParam('nome_bottone')) ...

in questo modo potrai verificare se il submit proviene dal bottone o dall'evento onChange della select

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Ciao Gianni e grazie per l'intervento, non ho ben chiaro l'implementazione di quanto mi dici. Vediamo se ho capito:

nella pagina phtml inserisco la select cosi???

<form action="<?php echo BASE_URL?>auto/insert" name="form" method="post">

<?php $m = marca::getMarca(); ?>(metodo per richiamare le marche dal DB)

    <?php $attribs = array('onChange' => 'postami la sintassi javascript per fare il submit'); ?>

    <p><label>Marca:<br />

    <?php echo $this->formSelect('marca',$this->auto['marca'],$attribs,$m)?></label></p>

...

...

...

e poi nel controller auto/insert faccio l'if che mi hai postato nel precedente intervento?

Grazie mille ancora

risposto 8 anni fa
reve
reve
1
X 0 X

prova con document.form.submit()

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda