Back to top

Autore Topic: Cronoconnectivity: filtrare dati form in base a URL  (Letto 3826 volte)

Offline notarepanis

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Cronoconnectivity: filtrare dati form in base a URL
« il: 10 Feb 2012, 10:43:58 »
Buongiorno a tutti.
Sono nuovo del forum e sinceramente non esperto. Devo risolvere un problema che mi sta togliendo il sonno, nonostante sembra sia stato più volte discusso nel forum ma per il quale non sono riuscito a trovare soluzione.
Ho creato un form in chronoconnectivity per la visualizzazione di prodotti in Virtuemart che, tramite l'estensione "Component Loader", rendo disponibile all'interno delle categorie Virtuemart (previa creazione di un'opportuna vista nel DB che mi rende disponibile i dati che mi interessano, tra cui il campo "category_id").
Il form dovrebbe filtrarmi i prodotti in base alla categoria selezionata e quindi disponibile nella URL.
Nel box "WHERE SQL" di CC ho inserito il seguente codice:


<?php $category_id = JRequest::getString('category_id', '', 'post'); echo " WHERE `category_id` = '$category_id' "; ?>


Ma non c'è verso: il form non restituisce alcun risultato.


Avendo attivato il componente sh404SEF ho pensato che il problema potesse essere riconducibile al fatto che l'URL non propone il valore "category_id".


Ma in realtà se nella WHERE inserisco direttamente l'ID di un categoria come nell'esempio a seguire...


<?php $category_id = JRequest::getString('category_id', '', 'post'); echo " WHERE `category_id` = '13' "; ?>


... tutto funziona correttamente. Quindi probabilmente il problema non è sh404SEF ma il mio codice inserito nel box WHERE.


Se qualcuno potesse darmi qualche suggerimento in merito, gliene sarei davvero riconoscente.


Grazie mille in anticipo.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #1 il: 10 Feb 2012, 11:50:35 »
Benvenuto nella comunità italiana di Joomla notarepanis,


Hai provato così ?

Codice: [Seleziona]
<?php $category_id JRequest::getString('category_id''''post'); echo " WHERE `category_id` = '".$category_id."' "?>
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 notarepanis

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #2 il: 10 Feb 2012, 12:10:38 »
Ciao Vales, grazie per il benvenuto e per la tua risposta.
Ho provato ad inserire il tuo codice, ma il risultato è sempre lo stesso: compare solo la scritta "Powered by Cronoconnectivity..."; per il resto il form non restituisce risultati.
Hai qualche altro suggerimento da darmi? Grazie di cuore.

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #3 il: 10 Feb 2012, 17:00:37 »
Vorrei vedere se possibile il codice che hai inserito nella connessione.

Parli di categoria selezionata disponibile nella URL. Se hai un parametro della URL che chiama la connessione prova a recuperarlo con

Codice: [Seleziona]
JRequest::getVar('category_id', '', 'get');
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 notarepanis

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #4 il: 11 Feb 2012, 10:44:38 »
Grazie per la risposta Vales. Qui però viene fuori tutta la mia ignoranza.
Mi chiedi "codice che hai inserito nella connessione". In realtà non è effettuato alcuna connessione via codice, anche perché non saprei esattamente come farlo.
Ho fatto ciò che segue:
- ho nel DB una vista che si chiama jos_browse_cat_product, dove sono i dati che mi interessano, tra cui il campo category_id
- in CC General setting - TableNames(s) ho selezionato questa vista
- nel box Body di CC richiamo i campi che mi interessano con la sintassi {nome_campo}
- nel box where di CC ho invece inserito il codice postato precedentemente: <?php $category_id = JRequest::getString('category_id', '', 'post'); echo " WHERE `category_id` = '$category_id' "; ?> (che ho provato a sostituire con quello da te suggeritomi);
[/size]- il form viene richiamato quando seleziono nel front-end una qualsiasi categoria di Virtuemart; quindi nell'URL compare la categoria (solo il nome dato che è attivo il componente sef404);
[/size]- da ignorante, suppongo che la vista sia connessa dato che se nel box WHERE inserisco direttamente un ID di una categoria anziché $category_id (es: [/size]<?php $category_id = JRequest::getString('category_id', '', 'post'); echo " WHERE `category_id` = '13' "; ?>) funziona correttamente. [/size]Inoltre se non inserisco nulla nel BOX WHERE mi vengono mostrati tutti i record. Quindi il form riesce a leggere i dati della vista.
[/size]Ciò che non riesco a fare è filtrarli.

[/size]Per quanto riguarda il tuo suggerimento di recuperare il parametro URL che richiama la connessione, non ho idea di come si faccia. Sorry.
So che è dura interagire con chi, come me, ne sa quanto un mulo; ti chiedo pazienza e sopratutto ti ringrazio per la disponibilità.[/font]




Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #5 il: 11 Feb 2012, 11:15:35 »
per connessione intendo cosa hai inserito nei campi di chronoconnectivity
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 notarepanis

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #6 il: 11 Feb 2012, 11:36:39 »

Inserisco immagini delle schermate.




Header e Footer li ho lasciati vuoti.
Nel Body c'è solo una tabella HTML che richiama i campi della vista con la sintasssi: {nome_campo}


A seguire invece il contenuto del campo WHERE:








Admin settings:





Questo è quanto.
Grazie Vales

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #7 il: 11 Feb 2012, 11:57:30 »
ok, la tua chronoconnectivity dovrebbe avere un URL di chiamata simile a questo. Lo vedi sulla destra del nome.

http://www.tuo_sito.it/index.php?option=com_chronoconnectivity&connectionname=tuo_nome

aggiungi il parametro category_id nell'URL ed ottieni la chiamata con il codice della categoria così

http://www.tuo_sito.it/index.php?option=com_chronoconnectivity&connectionname=tuo_nome&category_id=13

per esempio

Con questo codice recuperi in codice della categoria

Codice: [Seleziona]
<?php $category_id JRequest::getVar('category_id''''post'); echo " WHERE `category_id` = '".$category_id."' "?>
Nella header inserisci una select che seleziona la categoria e dovrebbe funzionare.

Qui trovi un esempio di una ricerca su campi inseriti nella header, nel tuo caso è solo uno ed è più semplice.

http://www.joomla.it/articoli-della-community/3897-chronoforms-e-chronoconnectivity-alcuni-aggiornamenti.html

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 notarepanis

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #8 il: 11 Feb 2012, 12:35:14 »
In realtà, come ti accennavo nel primo post, tramite Component Loader ho inserito il form CC all'interno delle categorie di Virtuemart. Nel front-end selezionando una categoria VM viene caricato il form.
In forza a ciò, la mia URL già include l'ID della categoria.
La URL mi compare così (nella versione SEF404):
http://www.mio_sito/index.php/nome-categoria.html


Nella versione non SEF:
http://www.mio_sito/index.php?option=com_virtuemart&Itemid=2&category_id=13&lang=it&limitstart=0&page=shop.browse


Quindi non necessito di aggiungere category_id nell'url in quanto già disponibile.
Nel campo WHERE ho lasciato:
<?php $category_id = JRequest::getString('category_id', '', 'post'); echo " WHERE `category_id` = '".$category_id."' "; ?>


Nel campo HEADER come mi hai suggerito ho aggiunto:

<?php
$db =& JFactory::getDBO();


$query = "


SELECT c.category_id
 FROM #__browse_cat_product as c
";


$db->setQuery($query);
$nomes = $db->loadRow();
?>


Ma il risultato è il medesimo: non filtra i dati e restituisce il form vuoto.




Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #9 il: 11 Feb 2012, 12:50:53 »
Se category_id è già nella url lo devi recuperare con un get non con un post

Codice: [Seleziona]
<?php $category_id JRequest::getVar('category_id''''get'); echo " WHERE `category_id` = '".$category_id."' "?>
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 notarepanis

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Cronoconnectivity: filtrare dati form in base a URL
« Risposta #10 il: 17 Feb 2012, 11:04:35 »
Vales, mi scuso per il ritardo con cui replico al tuo post.
Comunque, grazie ai tuoi suggerimenti, ho risolto.
Grazie mille per la tua pazienza e disponibilità.


 



Web Design Bolzano Kreatif