Back to top

Autore Topic: utilizzare un FORM con Plotalot  (Letto 4091 volte)

Offline AlienTech

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
utilizzare un FORM con Plotalot
« il: 26 Ott 2013, 10:37:07 »
Buongiorno, ho un problema che mi sta facendo perdere la testa. Vorrei inserire un form da utilizzare in un grafico lineare creato con plotalot che permetta all'utente di selezionare l'anno. inserisco di seguito il codice presente nell'articolo e il codice SQL presente nella pagina di configurazione del grafico plotalot. Il grafico ha l'ID 46, la variabile che sto provando ad utilizzre l'ho chiamata P1, l'URL che inserisco dopo <form action... è copiato direttamente dalla pagina web dove viene visualizzato il grafico in funzione (non ho effettuato nessuna modifica all'URL); l'ID dell'articolo è 177.

Questo è il codice nell'articolo:
</p>
 <form action="index.php?option=com_content&amp;view=category&amp;layout=blog&amp;id=37&amp;Itemid=146" method="post">
 Anno:
 <select name="YEAR" size="1">
 <option value="2012">2012</option> <option value="2011">2011</option>
 </select>
 <input type="submit">
 </form>
 {plotalot id="46" P1="_YEAR"}<p>


Questo è il codice SQL nella pagina di configurazione di plotalot:

 SELECT
 MONTH(Data_avaria), SUM(N_treni)
 FROM avvisi
 WHERE YEAR(Data_avaria)=’%P1%’
 GROUP BY MONTH(Data_avaria)

Grazie mille a tutti
« Ultima modifica: 26 Ott 2013, 10:39:18 da AlienTech »

Offline AlienTech

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
Re:utilizzare un FORM con Plotalot
« Risposta #1 il: 27 Ott 2013, 07:46:14 »
Nessuno che può darmi un consiglio??

Offline Alex21

  • Appassionato
  • ***
  • Post: 645
    • Mostra profilo
Re:utilizzare un FORM con Plotalot
« Risposta #2 il: 27 Ott 2013, 11:35:02 »
Ciao,


Potrebbe essere un problema che riguarda la sintassi della query a mysql.


E' un po' che non ne faccio, ma quelle interne a joomla, che ho trovato adesso, hanno questo aspetto:


'   WHERE t1.context = %d' .    ecc. ecc.


oppure


"SELECT * FROM #__flexicontact_log WHERE id = '$id'"


Bisogna controllare con pazienza che la tua sintassi sia priva di imperfezioni e se la versione MySql del server accetta una sintassi Mysql avanzata.


Ciao


Offline AlienTech

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
Re:utilizzare un FORM con Plotalot
« Risposta #3 il: 27 Ott 2013, 13:30:56 »
Ciao, quello che posso dirti è che se al posto di '%P1%', inserisco un anno qualsiasi tutto funziona, ad esempio:

 SELECT
 MONTH(Data_avaria), SUM(N_treni)
 FROM avvisi
 WHERE YEAR(Data_avaria)=2013
 GROUP BY MONTH(Data_avaria)

mi crea il grafico relativo al 2013 senza problemi... il vero problema è che non recepisce la variabile...
Qualche consiglio??
grazie mille

Offline Alex21

  • Appassionato
  • ***
  • Post: 645
    • Mostra profilo
Re:utilizzare un FORM con Plotalot
« Risposta #4 il: 27 Ott 2013, 16:01:06 »
Ciao, quello che posso dirti è che se al posto di '%P1%', inserisco un anno qualsiasi tutto funziona, ad esempio:
Beh, direi che una volta scovato il punto, hai risolto al 90%.

 

Citazione
mi crea il grafico relativo al 2013 senza problemi... il vero problema è che non recepisce la variabile...
Qualche consiglio??

Uno solo, in base a quello che mi ricordo.
L' assegnazione di variabili a Mysql è diversa da quella, più semplice, che si fa con il php.
Credo che sia meglio cercare dentro la documentazione Mysql , "assegnare variabili". Tra l'altro è scritto a chiare lettere che la cosa funziona con versioni  Mysql  a partire da ...  fai una grande attenzione alla notazione, gli apici diversi, in particolare.
L' assegnazione prevede due o tre istruzioni, concatenate, niente di trascendentale, però mysql vuole così. Poi, però devi essere sicuro che la versione Mysql in produzione riesce a leggerle.


Una alternativa dovrebbe essere quella di impostare una variabile del php, più immediata, e poi sistemarla dentro la query con la solita notazione che si usa con le variabili del php  '$qualcosa', però il primo metodo funziona di sicuro, questo mi dà dei dubbi.


Ciao
« Ultima modifica: 27 Ott 2013, 16:04:09 da Alex21 »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:utilizzare un FORM con Plotalot
« Risposta #5 il: 27 Ott 2013, 17:02:36 »
Ma forse manca l'iterazione fra quello che scrivi nell'articolo e lo script del plugin. Come credi che passi la variabile fra due elementi estranei?

Offline AlienTech

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
Re:utilizzare un FORM con Plotalot
« Risposta #6 il: 27 Ott 2013, 19:36:04 »
Ma forse manca l'iterazione fra quello che scrivi nell'articolo e lo script del plugin. Come credi che passi la variabile fra due elementi estranei?

Io credevo che bastasse utilizzare il metodo POST, così da inserire la selezione dell'utente all'interno di YEAR, che a sua volta la passava a P1.  A quel punto nel codice SQl del componente mi trovavo assegnato il valore alla vairabile P1 grazie  a {plotalot="46" P1="_YEAR"}, ma temo che non sia sufficente, come dici anche tu.

Venendo alla tua risposta: cosa credi che dovrei aggiungere per farlo funzionare?

grazie mille

Offline AlienTech

  • Nuovo arrivato
  • *
  • Post: 13
    • Mostra profilo
RISOLTO: utilizzare un FORM con Plotalot
« Risposta #7 il: 07 Apr 2014, 18:28:20 »
Alla fine ho risolto il problema, spero sia utile anche per altri utenti, il risultato è molto carino:

nell'articolo utilizzo il metodo post e passo una variabile a plotalot, ad esempio, come già scritto, {plotalot="46" P1="_YEAR"}

Poi vado nel grafico numero 46, e nella parte dedicata all'inserimento del codice SQL scrivo:
Data='%%P1=2014%%'

Tutto funziona, basta impostare un valore di default sostanzialmente...


« Ultima modifica: 09 Apr 2014, 10:40:57 da AlienTech »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:utilizzare un FORM con Plotalot
« Risposta #8 il: 07 Apr 2014, 19:24:23 »
Perfetto, grazie di aver condiviso la soluzione. Ti chiedo un ultimo sacrificio, mettere il risolto editando il titolo del primo messaggio. Grazie ancora.

 



Web Design Bolzano Kreatif