Ajax E Model

Un saluto a tutti,

avrei un problema, può darsi che sia semplice, ma io non trovo soluzione. Ho un metodo nel controller richiamato da ajax in una dropdownlist che non è collegata al model… Vorrei passare al db attraverso il model l’id della selezione effettuata nel dropdownlist, non utilizzando js per settare il campo nella form. Come si può fare?

Grazie, per l’aiuto.

devi utilizzare activeDropdownlist, specificando model e attributo di riferimento del db,

in questa maniera nel submit te la ritrovi insieme a tutto il resto, se hai problemi posta un pò di codice di riferimento

Grazie mille St4nny per il suggerimento, faccio qualche prova… eventualmente posto il codice.

Ciao a tutti,

comunque il codice è questo e fa parte di un esempio che ho trovato in giro :

nel controller :




public function actionUpdateTxt() {

		$codice = (int)$_POST['cmbCodice'];

		echo CHtml::tag('input', array('value' => $codice));

		}



nel _form :




<div class="row">

		<?php //echo $form->labelEx($model,'codice'); ?>

		<?php

        $countries = array(1=>'USA', 2=>'France', 3=>'Japan');

            $options = array(

                'id' => 'cmbcodice',

                'ajax' => array('type'=>'POST'

                                , 'url'=>CController::createUrl('nomi/updateTxt')    						

				, 'update'=>'#data'   //selector to update

                ));

            

       

        echo CHtml::dropDownList('cmbCodice',$model->codice, $countries, $options);



Nel _form, posso aggiornare un campo di testo in un <div> che si chiama <div id="data"> </div> e funziona, ma comunque il campo di testo visualizza solo ma non è possibile recuperare il valore visualizzato.

Il model è un model standard, ha 4 campi id, cognome, nome, codice.

Vorrei passare dal metodo updateTxt, richiamato via ajax dal dropdownlist, la variabile passata in post al model, per poter essere salvata nel db. Come si fa? E’ possibile?

Grazie di nuovo a tutti

Ho risolto così :

echo CHtml::dropDownList(‘Nomi[codice]’,$model->codice, $countries, $options);

c’è qualche altro modo?

anche perchè così, non si gestisce più il nome della dropdownlist… aggiorna il db, ma non si riesce più a visualizzare il valore selezionato nella combo, nel campo di testo collegato…

come ti dicevo activedropdownlist:

CHtml::activeDropDownList(model,‘codice’, $countries, $options);

per il resto non ho capito cosa devi fare, ma se ci sei riuscito… bene! :D