Back to top

Autore Topic: chronoforms - read db  (Letto 6257 volte)

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
chronoforms - read db
« il: 13 Mag 2016, 12:08:53 »
Ciao ragazzi, dovrei caricare in un dropdown un elenco di 800 clienti presi da un campo di una tabella (es. clienti), ho visto che esiste la funzione db read in setup, ma non saprei come dire al dropdown di collegarsi a questa voce della schermata setup. Esiste un modo (una volta selezionato il cliente, di avere la possibilità di aprire un form con tutti i dati del cliente ?? (penso bisogna farlo questo da chronoconnectivity visto che è una visualizzazione di una tabella...
« Ultima modifica: 17 Mag 2016, 14:55:49 da Ago_ »

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #1 il: 13 Mag 2016, 12:47:16 »
Nel sito in firma ci trovi una guida a riguardi, ma direi che sono tanti 800 clienti dentro una dropdown list, devi cominciare a pensare un pò più in grande ed in modo più strutturato.
Quali dati ci sono in questa tabella?

Poi potresti avere 2 clienti che si chiamano Mario Rossi, quale scegliere nella dropdown o magari in una textbox con autocompletamento?

Bisognerebbe conoscere un pò la logica della tua applicazione, ma se fossi l'operatore e ti si presentasse l'utente al tuo ufficio, cosa gli chiederesti per essere sicuri che sia quel mario rossi? Come verificheresti e quali operazioni vorresti fare una volta trovato il giusto mario rossi?
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #2 il: 13 Mag 2016, 14:16:47 »
in effetti quel numero mi spaventa da un pò di tempo, potrei suddividere quell'elenco in 3 macroaree e creare due drop variabili (anche se un textbox con autocompletamento sarebbe più funzionale).

Per il discorso dei nomi uguali potrei mettere il codice cliente al posto del nome e quindi avere il dato univoco (anche se in questo caso poi dovrei far comparire il nome del cliente affianco una volta inserito, con autocompletamento, il codice utente).

Sempre calcolando che per ulteriori info sul cliente, serve un button per aprire un popup con tutti i dati aziendali presenti nella tabella (nel caso l'operatore ha bisogno dei dati anagrafici).

In tutto questo la tabella clienti sarà abbastanza complessa (anche 30 campi penso).

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #3 il: 13 Mag 2016, 14:50:53 »
30 campi in una tabella sono tanti, tabelle con così tanti campi sono davvero rare, sicuro di aver progettato bene il tuo database?


Considera di poter avere una maschera dove interrogare il db, se troverai l'utente potrai procedere visualizzando la sua scheda, se invece non esiste potrai decidere di creare un nuovo record.

Stabilisci quali sono le informazioni ridondanti e per queste usa tabelle separate, per esempio:

comune e provincia (di residenza o di nascita non importa) sono un gruppo di dati "fissi" (nuove provice e comuni non nascono tutti i giorni), quindi utilizza una tabella per le province e poi in base alla provincia scelta avrai a disposizione i suoi comuni.

Ricorda le relazioni che i dati potrebbero avere, sarà più semplice progettare l'applicazione.

se avessi da creare un applicazione dove inserire film attori e registi dovresti tenere in considerazione almeno 3 tabelle per estrarre almeno questi dati:

tutti i titoli dei films che ha diretto il regista "caio"
tutti i titoli dei films dove ha recitato l'attore "sempronio"
tutti gli attori che hanno partecipato nello stesso film

poi naturalmente se volessimo aggiungere la tabella con i generi, della casa di produzione e della nazione di produzione converrebbe creare altre 3 tabelle, proprio perchè per questo tipo di informazione sarebbero dati ridondanti vederle inserire record per record.......


su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #4 il: 14 Mag 2016, 06:16:03 »
occhio anche alla privacy, tutti quei dati che circolano sul web vanno gestiti in modo appropriato.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #5 il: 16 Mag 2016, 14:22:14 »
per clienti intendo rivenditori, quindi negozi i cui dati sono già online nel sito web. Questi form saranno usati internamente quindi accessibili solo a personale interno.
« Ultima modifica: 16 Mag 2016, 14:24:31 da Ago_ »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #6 il: 16 Mag 2016, 14:31:25 »
Potresti usare autocompletamento per il nome e poi visualizzare in modo automatico la scheda completa del rivenditore per verificare che sia quello voluto. Queste cose puoi farlo con chronoforms o con applicazioni esterne, dai un occhiata anche al link nella mia firma.

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #7 il: 16 Mag 2016, 14:44:25 »
si si infatti sto creando la tabella per fare un autocompletamento su textbox, molto più veloce

http://www.icagenda.it/chronoforms-autocompleter-dati-da-tabella-db.html

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #8 il: 16 Mag 2016, 17:00:15 »
si si infatti sto creando la tabella per fare un autocompletamento su textbox, molto più veloce

http://www.icagenda.it/chronoforms-autocompleter-dati-da-tabella-db.html

piccola pecca di questo elemento (confermata dallo sviluppatore) da usare solo come "lettore" finale, purtroppo se lo usi per inserire dati su un nuovo record ti inserisce il nome e non l'id, quindi valuta il tuo workflow
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #9 il: 17 Mag 2016, 09:32:58 »
allora, avevo intenzione di usare un textbox con autocompleter per selezionare il cliente a cui intestare l'intervento che sarà creato attraverso il form (quindi la creazione di un nuovo record)....ho una tabella cliente con 6 campi (codice,cliente,indirizzo,cap,città,provincia), a me interessa principalmente il codice (ma se posso sfruttare l'autocompleter con un dropdown allora uso quest'ultimo, a me interessa un modo per trovare velocemente un codice su 800 codici clienti). Non sono obbligato a usare un text.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #10 il: 17 Mag 2016, 14:46:47 »
Se il campo nome che ricerchi co autocomplete sta anche nella tabella del form non importa che non mette l'id. Se invece devi mantenere le relazioni allora e fondamentale salvare l'id e non il nome. Per esempio nel primo caso non puoi aggiungere direttamente un nuovo cliente se non presente ma devi aggiungerlo separatamente cambiando form.

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #11 il: 17 Mag 2016, 14:50:10 »
la tabella clienti sarà sì aggiornata ma settimanalmente e tramite sql (in poche parole gli operatori che agiranno sui form di cui si sta parlando per inserire le pratiche di assistenza non hanno competenza nell'aggiungere clienti).

però mi interessa creare un pulsante affianco al codice che richiama una scheda con tutti i dati del cliente (indirizzo, fatturano degli ultimi anni, etc....dati che saranno sempre immessi insieme alla tabella clienti, quindi dati di solo di lettura per gli operatori).

quindi deduco che mi conviene usare il dropdown insieme all'autocompletamento per evitare problemi di ogni tipo...
« Ultima modifica: 17 Mag 2016, 14:52:52 da Ago_ »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #12 il: 17 Mag 2016, 14:53:48 »
Allora, tanto per capirci gia il titolo è fuorviante, caricare in dropdown  dovresti cambiare con caricare tramite dropdown, poi specifica dove.

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
Re:caricare in dropdown campo database
« Risposta #13 il: 17 Mag 2016, 14:55:06 »
Allora, tanto per capirci gia il titolo è fuorviante, caricare in dropdown  dovresti cambiare con caricare tramite dropdown, poi specifica dove.

già, la discussione era nata per una specifica domanda, poi si è evoluta....cambio il titolo...
« Ultima modifica: 17 Mag 2016, 14:56:50 da Ago_ »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:chronoforms - read db
« Risposta #14 il: 17 Mag 2016, 14:57:58 »
Visto che è un esigenza che ricorre spesso meglio affrontarla anche ad uso e consumo della comunità oltre naturalmente per il tuo caso.  :)

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms - read db
« Risposta #15 il: 18 Mag 2016, 06:14:46 »
Se il problema era quello di ottenere l'id del record nel campo text tramite l'autocompleter occorre fare delle modifiche al codice usato dallo sviluppatore nell'autocompleter in questo modo.

Esempio con tabella con nomi dei comuni italiani con campi idcomune e nome

1) inserire in On countries_list  (o altro nome usato in AJAX form event dell'action Autocompleter) un Db Read che punta alla tabella dei comuni con:

    Multi read = Yes
    Model ID = comuni
    Fields = idcomune,nome

2) inserire dopo Db Read un custom code con il seguente script

Codice: [Seleziona]
<?php
foreach($form->data['comuni'] as $comune){
    if(!empty(
$form->data['tag']) AND stripos($comune['nome'], $form->data['tag']) === false){
        continue;
    }
    
$json[] = array('id' => $comune['idcomune'], 'text' => $comune['nome']);
}
echo 
json_encode($json);
?>

Con questo codice nel campo testo la ricerca viene fatta sul nome del comune ma il valore restituito è idcomune che è la chiave primaria della tabella dei comuni.
   

Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms - read db
« Risposta #16 il: 23 Mag 2016, 16:34:02 »
Codice: [Seleziona]
<?php
foreach($form->data['comuni'] as $cliente){
    if(!empty(
$form->data['tag']) AND stripos($cliente['nome'], $form->data['tag']) === false){
        continue;
    }
    
$json[] = array('id' => $cliente['codice'], 'text' => $cliente['cliente']);
}
echo 
json_encode($json);
?>


grazie vales

questo il tuo codice che sto provando in custom code, anche se non riesco a farlo funzionare (sicuramente sbaglio nell'adattamento del codice al mio caso non essendo un programmatore)

ho un db gar_a_clienti con 6 campi (codice, cliente,indirizzo,cap,citta,provincia)
clienti_db, AJAX form event
cliente, field selector autocompleter
tag, field name autocompleter
comuni, model id DB Read

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms - read db
« Risposta #17 il: 23 Mag 2016, 17:28:53 »
Il codice è corretto.
Se hai modificato  tutti gli elementi della Db Read per adattarli alla tua situazione  l'unica cosa che mi viene in mente è quella di controllare di aver inserito in Field selector di autocompleter il Filed ID del tuo campo di ricerca preceduto da cancelletto # cioè così

#cliente

Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline Ago_

  • Abituale
  • ****
  • Post: 823
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms - read db
« Risposta #18 il: 27 Mag 2016, 11:27:43 »
sto prendendo la decisione di semplificare le cose almeno nella fase iniziale, anche a costo di creare piu forms e semplificare le operazioni di creazione.

avrei una domanda, creando diversi livelli e gruppi di accesso (almeno 3) su joomla, chi inserisce attraverso il forms A dei record, poi vede quelli inseriti da altri utenti dello stesso livello?? ognuno vede i suoi?? gli utenti del livello superiore vedono i record inseriti dagli utenti di livello inferiore??
« Ultima modifica: 27 Mag 2016, 11:33:42 da Ago_ »

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoforms - read db
« Risposta #19 il: 27 Mag 2016, 12:00:49 »
se metti un filtro in DB Read sul campo user_id ognuno vede i propri record
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

 



Web Design Bolzano Kreatif