Option Field Dinamica

5 contenuti / 0 new
Ultimo contenuto
Option Field Dinamica

Ciao a tutti,
sto creando un sito nel quale gli utenti devono inserire dei dati per mantenerlo aggiornato.
Praticamente per l'inserimento dei dati utilizzo WebForm e per la visualizzazione le Views.

Espongo un esempio per farvi capire i problemi che riscontro:
Pagina inserimento professione
Pagina inserimento persona
Pagina inserimento lavoro

Professione 1 <-> N Persona 1 <-> N Lavoro

Nella prima pagina posso gestire l'inserimento tramite webform che già prevede il controllo sui valori duplicate. Nella seconda pagina dovrò inserire un campo di tipo OPTION che recupera i propri valori dalla tabella Professioni (popolata attraverso l'inserimento della prima pagina), quindi selezionata la professione sarà possibile inserire la persona. Nella terza pagina invece, l'utente dovrà avere la possibilità di selezionare la professione (campo OPTION1), selezionare la persona dalla tabella Persone (campo OPTION2 popolato secondo la selezione di OPTION1), inserire il lavoro eseguito che andrà a popolare la tabella Lavori.

Devo trovare il modo di creare un OPTION FIELD dinamico da poter inserire nella WebForm

Per la visualizzazione dei dati, invece, dovrò effettuare lo stesso ragionamento

Nella prima pagina posso elencare tranquillamente tutte le voci della tabella Professioni, con relative link ad un unica pagina standard (altrimenti per ogni professione inserita devo manualmente creare una pagina che elenca le varie persone), al quale verrà passato il parametro della professione. Nella seconda pagina infatti devo captare il parametro e mostrare le Persone appartenenti alla sola professione passata. Nella terza pagina i parametric invece dovranno essere due. è possibile gestire tale passaggio di parametric con le Views?

Avete altri suggerimenti su come implementare le pagine del sito?

Grazie in anticipo

Drupal Version:

non ho capito bene tutto,i dati li inserisce una terza persona o sono inseriti dall'utente direttamente come se modificasse il proprio profilo?
se è una specie di profilo x utente che vuoi tirar fuori potresti ,invece di webform,creare un contenuto per professione distinta e abbinarlo ad un ruolo distinto con aggiunta campi infiniti per il field lavori fatti che verrebbero aggiunti dall'utente e poi con views mostri tutto aggiornato

Ciao, in realtà l'esempio era appunto un esempio per far capire la gerarchia che ci deve essere.
Nella realtà avrò la possibilità di inserire Clienti, Negozio, Periferica.
Comunque a prescindere dal progetto, avrei necessità di un option field che sia correlato ad un campo del database (es campo nome della tabella clienti, in automatico andrà a popolare le selezioni con ogni cliente). Questo per direzionare l'utente al corretto inserimento dei dati:
Nuovo cliente: l'utente scrive manualmente il nome del cliente
Nuovo negozio: l'utente deve avere la possibilità di selezionare il cliente (tramite option field e valori recuperati da database) e successivamente scrive manualmente il nome dle negozio
Nuova periferica; l'utente deve avere la possibilità di selezionare il cliente, successivamente selezionare il negozio (tramite option field con valori recuperati da db secondo il cliente selezionato), scrive il nome della periferica.

Cercando online non riesco a trovare una soluzione semplice e completa. Avete qualche suggerimento?

Ciao a tutti,
sono riuscito a creare la mia Option field dinamica, utilizzando il campo Option del modulo WebForm.
Praticamente è stato necessario creare un nuovo modulo ed implementare la mia lista nel metodo hook_webform_select_options_info(). In questo modo risulta essere possibile selezionare la lista nella sezione Load a pre-built option list quando viene creato il campo di tipo Select Option nella web form.

A questo punto vorrei completare aggiungendo un po di ajax ai componenti. Infatti vorrei che alla selezione di un determinato valore della prima Select Option venga popolata la seconda Select Option con una determinata lista. Sembra sia sufficiente applicare ajax sul primo componente, in modo che all'evento change value ('event') venga modificata la seconda Select Option ('wrapper'), quindi ricaricata la medesima pagina ('page callback').

Di seguito riporto il codice fin'ora implementato, al quale è necessario aggiungere ajax.

<?php
function dataoption_field_help($path, $arg){
    switch(
$path){
        case
"admin/help#dataoption_field":
            return
'<p>'.t("Abilita il campo Option con valori recuperati da database").'</p>';
        break;
    }
}
function
dataoption_field_webform_select_options_info() {
$items = array();
   
$items['clienti'] = array(
     
'title' => t('Clienti'),
     
'options callback' => '_getClienti',
     
'ajax' => array(
/*PARAMETRI PER GESTIONE CODICE AJAX*/
     
),
    );
   
$items['periferiche'] = array(
     
'title' => t('Periferiche'),
     
'options callback' => '_getPerif',
    );
  return
$items;
}
function
_getClienti(){
   
$result=db_query("select NomeCliente from ProvaClienti");
   
$options = array();
   
$count = 0;
    while(
$row = $result->fetchAssoc()){
       
$options[$count]=t($row['NomeCliente']);
       
$count++;
    }
    return
$options;
}
function
_getPerif(){
   
/*NECESSITA DI RECUPERARE IL VALORE DELLA PRIMA SELECT OPTION*/
       
$result=db_query("select periferica from periferiche where cliente='".t($arg1)."'");
       
$options = array();
       
$count = 0;
        while(
$row = $result->fetchAssoc()){
           
$options[$count]=t($row['NomeCliente']);
           
$count++;
        }
    return
$options;
}
?>