Componenti per Joomla! => Gestione Form => : pierofj 31 Jan 2015, 20:38:15
: [RISOLTO]chronoconnecttivity 5
: pierofj31 Jan 2015, 20:38:15
Buonasera, sono qui con un altro problema. Ho una form multipage che a pagina 2 contiene una text area di nome DOMNR avvalorata dalla pagina 1 e la vedo avvalorata in modo corretto. La pagina apre una connessione di nome risp che necessita di una clausola where per filtrare i records da visualizzare. Io così scrivo la clausola su models condition; <?php $var = $form->data[DOMNR]; return array(":aaa.idar = " . $var); ?> e mi esce il seguente errore: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 SQL=SELECT COUNT(*) AS `aaa.count` FROM `report_r` AS `aaa` WHERE aaa.idar =
mi sembra ovvio che la clausola where non è completa.
Può essere che la connessione non possa accedere ai campi della form da cui è stata aperta?? Scusate per il disturbo, ma le ho provate tutte. Grazie per un eventuale Chiarimento/aiuto. Ciao a tutti Piero
: Re:chronoconnecttivity 5
: vales31 Jan 2015, 22:16:09
Questo andrebbe così
:
$var = $form->data['DOMNR']; ma una where con controlla il contenuto di una text area mi convince poco.
: Re:chronoconnecttivity 5
: pierofj01 Feb 2015, 11:31:19
Si hai ragione tu. Ho anche provato a portare DOMNR sulla testata della connection in questo modo
pensando che la connection non potesse accedere ai dati della form, ma niente. però sono convinto che è possibile in qualche modo essendo questa una operazione normale nel senso che se io ho una connection che mi mostra degli articoli di magazzino per esempio dovrebbe essere normale che scegliendo un articolo apro ul altra connection che mi mostra i movimenti e quindi devo in qualche modo passare il codice articolo. Ho provato anche con il gcb ma non funzia. Ora cerco su internet Comunque grazie per la disponibilità.
: Re:chronoconnecttivity 5
: vales01 Feb 2015, 12:31:14
Certo che deve funzionare. Nella seconda connection in conditions del model recuperi il valore dell'articolo che hai inserito nell'url del link di chiamata e crea la query con il filtro sull'articolo.
Ma se continui a scrivere
:
$form->data[DOMNR] senza gli apostrofi non funziona.
I link all'altra connection lo inserisci in PHP functions con il metodo che ti ho detto nell'altro post.
: Re:chronoconnecttivity 5
: pierofj01 Feb 2015, 13:18:04
Vales sto impazzendo.
Ora ho scritto così <?php $var = $form->data[DOMNR]; return array("aaa.idar = " . '$var'); ?> e la clausola viene viene così; 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`aaa`.`var`' at line 1 SQL=SELECT COUNT(*) AS `aaa.count` FROM `report_r` AS `aaa` WHERE `aaa`.`idar` = $`aaa`.`var` addiritura aggiunge aaa alla mia variabile che è il modello della connection e mi mostra il nome della variabile. Vales scusa se ti disturbo,ma sento che sono vicino alla soluzione. Mi manca solo l'ultima dritta. Grazie
: Re:chronoconnecttivity 5
: vales01 Feb 2015, 18:02:46
Prova così
:
<?php return array('aaa.idar' => $var); ?>
ammesso che in $var ci sia qualcosa di giusto
: Re:chronoconnecttivity 5
: pierofj01 Feb 2015, 18:26:22
vales ecco i risultati <?php $var = "21"; return array('aaa.idar' => $var); ?> funziona <?php $var = $form->data[DOMNR]; return array('aaa.idar' => $var); ?> non funziona o meglio non riceve il dato WHERE `aaa`.`idar` = '' ORDER BY `aaa`.`idar` LIMIT 10
Quindi la form che ha la textarea DOMNR ed è avvalorata ed apre la connessione e passa questo dato alla testata della connessione perchè ho fatto questo codice, però la clausola where non la vede <TABLE> <TR> <TD>_PAGINATOR_NAV_</TD> </TR <TR> <TD>Dato: <input type="text" name="DOMNR" style="height: 30px",value =" <? echo $form->data[DOMNR] ?>" /> </TD> </TR>
A questo punto credo che la soluzione vada oltre le mie capacità oppure sto affrontando il problema in modo non corretto Comunque grazie sei sempre gentile e io non demordo. Se un giorno riesco a fare quello che mi prefissando te lo dico, ma soprattutto ti spiego il motivo per cui mi sono incastrato a tal punto. Grazie ancora
: Re:chronoconnecttivity 5
: vales01 Feb 2015, 20:49:42
io l'unico problema che vedo è con continui a scrivere $form->data[DOMNR] senza gli apostrofi anzichè $form->data['DOMNR'] a meno che quel DOMNR sia una costante.
: Re:[RISOLTO]chronoconnecttivity 5
: pierofj05 Feb 2015, 17:42:46
Ho fatto così la clausola where è la seguente: <?php $session =& JFactory::getSession(); $clausola= $session->get('dato1'); return array("aaa.idar" => $clausola); ?>
la variabile $clausola è una variabile di sessione impostata così: <?php $session =& JFactory::getSession(); $clausola= $session->get('dato1'); return array("aaa.idar" => $clausola); ?> con una funzione custom sulla form che apre la connessione. Grazie vales piero