Back to top

Autore Topic: ChronoForm V5 - Form Complessa  (Letto 2803 volte)

Offline ilmagowalter

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
ChronoForm V5 - Form Complessa
« il: 03 Feb 2016, 18:49:04 »
Ciao,
scusate il titolo del post, ma sinceramente non mi veniva uno più specifico

Sto provando a fare una form come in questa immagine
http://www.screencast.com/t/soblyCjmVK1

Tabella DB - SEDE_INSTALLAZIONE ( Semplificata )
ID_SEDE
DESCRIZIONE

Tabella DB - ANAG_VIDEO ( Semplificata )
ID_VIDEO
DESCRIZIONE

Tabella DB - SEDE_INSTALLAZIONE -> Correlazione tra le altre due
ID_SEDE
ID_VIDEO

Il funzionamento dovrebbe essere
Seleziono la sede installazione
Listbox "Video Non Associati" si deve valorizzare con tutti i video disponibili per l'associazione ( non presenti quindi sulla tabella di correlazione )
Listbox "Video Associati" si deve valorizzare con tutti i video già associati ( presenti quindi sulla tabella di correlazione )

i pulsanti ADD e REMOVE servono a spostare uno o più video da una parte all'altra

e alla fine ci sarà il pulsante SUBMIT che aggiornerà la situazione sulla tabella di correlazione cancellando prima tutti i record per la sede selezionate ed inserendo la nuova situazione
----
sono in panne....  :o :o
avevo pensato di creare alcune viste di database per caricare le listbox e poi farle filtrare con la selezione della sede, ma non riesco ad impostarle per bene...
oppure è possibile impostare delle query invece di utilizzare solo le tabelle ? ( considerando che uso un DB esterno non quello di joomla )...se fosse possibile potrei recuperare con una select i video associati, mentre i quelli non associati sarebbero quelli dell'anagrafica non presenti tra quelli associati ( ..not in select .... )

qualcuno ha qualche suggerimento ?

Offline ilmagowalter

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #1 il: 04 Feb 2016, 14:08:54 »
Dunque...sono andato un pò avanti
In base alla selezione nella dropdown della sede riesco a popolare la listbox di destra con i video associati
adesso ho il problema di popolare la listbox di sinistra con quelli da associare
al momento ho popolato la listbox mettendo tutti i video della'anagrafica, ma ho provato a modificare il customcode per visualizzare tutti i video dell'anagrafica ad eccezioni di quelli presenti nell'altra listbox

Codice: [Seleziona]
<?php
$options 
= array();
if ( !
$form->data['AnagVideo'] || count($form->data['AnagVideo']) < ) {
  
// no result was found
  
$options[] = 'Seleziona Sede/Nessun video da associato';
} else {
  foreach ( 
$form->data['AnagVideo'] as $d ) {
      
$trovato 'no';
      foreach ( 
$form->data[VideoSedeDescr] as $v ) {
            if 
$d[ID_VIDEO'] = $v['ID_VIDEO'] {
                $trovato = '
si';
          }
      }
        if $trovato = '
no' {
            $options[$d['
ID_VIDEO']] =  $d['DESCRIZIONE'];
      }
  }
}
echo json_encode($options);
?>
ma il risultato è che non esce alcun valore...
VideoSedeDescr è il model della dbread della listbox di destra...forse non posso utilizzare questo model ?

Offline MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #2 il: 04 Feb 2016, 14:21:21 »
l'if prevede una comparazione non un assegnazione e magari la corretta sintassi con parentesi
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

Offline ilmagowalter

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #3 il: 04 Feb 2016, 14:26:04 »
ok, non sono molto ferrato sulla sintassi del php

ho modificato così ma continua a non funzionare

Codice: [Seleziona]
<?php
$options 
= array();
if ( !
$form->data['AnagVideo'] || count($form->data['AnagVideo']) < ) {
  
// no result was found
  
$options[] = 'Seleziona Sede/Nessun video da associato';
} else {
  foreach ( 
$form->data['AnagVideo'] as $d ) {
      
$trovato 'no';
      foreach ( 
$form->data['VideoSedeDescr'] as $v ) {
            if ( 
$d[ID_VIDEO'] == $v['ID_VIDEO'] ) {
                $trovato = '
si';
          }
      }
        if ( $trovato == '
no' ) {
            $options[$d['
ID_VIDEO']] =  $d['DESCRIZIONE'];
      }
  }
}
echo json_encode($options);
?>

« Ultima modifica: 04 Feb 2016, 14:46:56 da ilmagowalter »

Offline MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #4 il: 04 Feb 2016, 15:36:42 »
si vede anche dal colore del codice che hai postato che c'è un errore di sintassi...

invece di fare un json encode prova prima a printare ciò che ricavi... magari non va bene per essere codificato
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

Offline ilmagowalter

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #5 il: 04 Feb 2016, 16:02:39 »
uff, è verametne un problema debuggare in quel momento di esecuzione all'interno di chronoforms...non riesco a far printare niente...

ma tagliando la testa al toro..tu hai idea come poter cambiare invece il dbread di anag_video potendo inserire una where condition tipo questa ?
WHERE ID_VIDEO NOT IN ( SELECT ID_VIDEO FROM sede_installazione_video WHERE ID_SEDE = 'valore della dropdown')

Offline ilmagowalter

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #6 il: 04 Feb 2016, 18:42:17 »
Allora..sto provando in altra maniera
nella combobox ID_SEDE ho impostato l'evento

http://www.screencast.com/t/Nnf2hOTd

nella pagina di setup ho creato un evento chiamato ajax3e ho inserito un custom code
Codice: [Seleziona]
<?php
$dbhost 
'localhost';
$dbuser 'root';
$dbpass '';
$conn mysql_connect($dbhost$dbuser$dbpass);
if(! 
$conn )
{
  die(
'Could not connect: ' mysql_error());
}
$sql 'SELECT ID_VIDEO, DESCRIZIONE FROM ANAG_VIDEO WHERE ID_VIDEO NOT IN 
( SELECT ID_VIDEO FROM SEDE_INSTALLAZIONE_VIDEO WHERE ID_SEDE = ' 
form_id_sede;

mysql_select_db('ecopm');
$retval mysql_query$sql$conn );
if(! 
$retval )
{
  die(
'Could not get data: ' mysql_error());
}
while(
$row mysql_fetch_array($retvalMYSQL_ASSOC))
{
    echo 
"ID :{$row['ID_VIDEO']}  <br> ".
         
"Title: {$row['DESCRIZIONE']} <br> ".
         
"--------------------------------<br>";
}
mysql_close($conn);
?>

ho provato il codice fuori joomla e funziona
ora le domande sono
come utilizzo il valore selezionato nella combobox ID_SEDE per formare la stringa sql?
come metto i risultati della query nella listbox della form ?

spero che qualcuno abbia voglia di aiutarmi

Offline MariaElenaBoschi

  • Appassionato
  • ***
  • Post: 469
    • Mostra profilo
mancano 2 giorni alla mia prematura dipartita, saluti a tutti, meb.

Offline ilmagowalter

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #8 il: 04 Feb 2016, 21:34:17 »
non per far polemica, sinceramente non capisco il tuo post ( come anche quelli precedenti ), che non mi pare mi aiutino con il mio problema
quest'ultimo fa vedere i vari modi di interagire con un database e le sue tabelle...ma non è quello che io ho chiesto
non ho mai programmato in php ( altri linguaggi si ) e non posso impararlo in un giorno ma son riuscito a tirar fuori i dati con la select che mi serve..sto solo chiedendo come interfacciarla con gli elementi di chronoform

Offline ilmagowalter

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #9 il: 08 Feb 2016, 14:51:47 »
ragazzi, nessun sa come aiutarmi ? in un modo ( riuscendo a condizionare per bene il db read ) o nell'altro ( interfacciare con il custom code che tira fuori i dati dal db ) ?

Offline ilmagowalter

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:ChronoForm V5 - Form Complessa
« Risposta #10 il: 08 Feb 2016, 18:37:46 »
sono riuscito a fare la condizione nel condition box del db read..ho trovato la sintassi

la posto nel caso possa servire a qualcuno

Codice: [Seleziona]
<?php
return array (":AnagVideo.ID_VIDEO not in ( select id_video from ecopm.sede_installazione_video WHERE ID_SEDE = " $form->data['ID_SEDE'] . " )");
?>

ora vado avanti con le altre feature del form

 



Web Design Bolzano Kreatif