Joomla.it Forum

Componenti per Joomla! => Gestione Form => : Ago_ 28 Jun 2016, 12:04:55

: problemino autocompleter db con doppio textbox
: Ago_ 28 Jun 2016, 12:04:55
salve ragazzi, ho un problemino nel salvataggio dei dati.

Ho due textbox in lettura da una tabella con due campi codiceprodotto e nomeprodotto

1) textbox codiceprodotto con autocompleter
2) textbox nomeprodotto

autocompleter con codice

:
  <?php
    
foreach($form->data['Datacom'] as $un_codice){
        if(!empty(
$form->data['tag']) AND stripos($un_codice['codiceprodotto'], $form->data['tag']) === false){
            continue;
        }
        
$json[] = array('id' => $un_codice['nomeprodotto'], 'text' => $un_codice['codiceprodotto']);
    }
    echo 
json_encode($json);
    
?>


load javascript in on load (per textobox nomeprodotto) con codice

:
jQuery(document).ready(function(jQ) {
  jQ('#codiceprodotto').on("select2-selecting", function(evt) {
    jQ('#nomenome').val(evt.choice.id);
  });
});

#codiceprodotto l'ID dell'autocompleter e #nomenome l'ID del texbox nomeprodotto


Nel form che compilo funziona tutto bene, nel codiceprodotto visualizza il codice e il nomeprodotto il nome del prodotto

Al momento del salvataggio nelo db succede il problema, in codiceprodotto salva il nome e in nomeprodotto non salva niente

C'è qualcuno più esperto di me che capisce dove sta il problema ??
: Re:problemino autocompleter db con doppio textbox
: vales 28 Jun 2016, 13:21:22
controlla che il name del campo del nomeprodotto coincida con quello del campo della tabella in cui va salvato

metti anche delle action debugger per vedere cosa succede in certi punti del On Submit
: Re:problemino autocompleter db con doppio textbox
: Ago_ 28 Jun 2016, 16:14:23
controlla che il name del campo del nomeprodotto coincida con quello del campo della tabella in cui va salvato

metti anche delle action debugger per vedere cosa succede in certi punti del On Submit

ciao vales, grazie dell'aiuto....in effetti c'era qualche problemino dove hai detto...ho sistemato un po di cose e ricreato e rigenerato tabella/mail

riepilogo
autocompleter

:
<?php
foreach($form->data['Datacom'] as $uno){
    if(!empty(
$form->data['tag']) AND stripos($uno['codiceprodotto'], $form->data['tag']) === false){
        continue;
    }
    
$json[] = array('id' => $uno['nomeprodotto'], 'text' => $uno['codiceprodotto']);
}
echo 
json_encode($json);
?>

javascript

:
jQuery(document).ready(function(jQ) {
  jQ('#codice').on("select2-selecting", function(evt) {
    jQ('#nome').val(evt.choice.id);
  });
});

nel form visivo vedo tutto correttamente al suo posto
nella mail e nel db mi restituisce due volte il nome del prodotto (sia nel campo codice che nel nome)


non vorrei azzardare ma secondo me il problema sta nel codice autocompleter...c'è un po di confusione li



questo il debug

:
Data Array

Array
(
    [option] => com_chronoforms5
    [view] => form
    [Itemid] => 127
    [chronoform] => PRATICA
    [event] => submit
    [codiceutente] => WebMaster
    [mail] => polizzano@feelplus.it
    [datapratica] => 28-06-2016
    [contatto] => inserire nome e/o telefono se diverso
    [codice] => DH-9000                  18"45
    [nome] => DH-9000                  18"45
    [descrizionedifetto] => ygje
    [manifestazionedifetto] => yytjtej
    [datigaranzia] => 0
    [numeroddt] => 1234.55555
    [dataddt] => 14/06/2016
    [datascontrino] =>
    [dichiarazione] => 1
    [inviopratica] => INVIA PRATICA
    [mailutente] => polizzano@feelplus.it
    [id] => 57
    [ip_address] => xxxxxxxx
)

Array
(
)

Errors

Array
(
)

Debug Info

Array
(
    [4] => Array
        (
            [DB Save] => Array
                (
                    [Queries] => Array
                        (
                            [0] => INSERT INTO `garanzia_pratiche` (`codiceutente`, `mail`, `datapratica`, `contatto`, `descrizionedifetto`, `manifestazionedifetto`, `datigaranzia`, `numeroddt`, `dataddt`, `datascontrino`, `dichiarazione`, `inviopratica`, `user_id`, `uniq_id`, `created`) values ('WebMaster', 'polizzano@feelplus.it', '28-06-2016', 'inserire nome e/o telefono se diverso', 'ygje', 'yytjtej', '0', '1234.55555', '14/06/2016', '', '1', 'INVIA PRATICA', '628', '9ea886d0cf259f33c1cf773a3523549383e37a8e', '2016-06-28 16:03:36');
                        )

                )

        )

    [9] => Array
        (
            [Email] => Array
                (
                    [0] => An email with the details below was sent successfully:
                    [1] => To:polizzano@feelplus.it, garanzia@feelplus.it
                    [2] => Subject:FEELPLUS - Pratica di Assistenza
                    [3] => From name:FEELPLUS - Assistenza Tecnica
                    [4] => From email:garanzia@feelplus.it
                    [5] => CC:
                    [6] => BCC:
                    [7] => Reply name:
                    [8] => Reply email:
                    [9] => Attachments:
                    [10] => Array
                        (
                        )

                    [11] => Body:
<table border="1">
<tr><td>Codice Utente</td><td>WebMaster</td></tr>
<tr><td>E-Mail</td><td>polizzano@feelplus.it</td></tr>
<tr><td>Data Pratica</td><td>28-06-2016</td></tr>
<tr><td>Contatto</td><td>inserire nome e/o telefono se diverso</td></tr>
<tr><td>Codice Prodotto</td><td>DH-9000                  18"45</td></tr>
<tr><td>Nome Prodotto</td><td>DH-9000                  18"45</td></tr>
<tr><td>Descrizione Difetto</td><td>ygje</td></tr>
<tr><td>Come si è manifestato il difetto ?</td><td>yytjtej</td></tr>
<tr><td>Dati garanzia</td><td>0</td></tr>
<tr><td>N. DDT</td><td>1234.55555</td></tr>
<tr><td>Data DDT</td><td>14/06/2016</td></tr>
<tr><td>Data Scontrino</td><td></td></tr>
<tr><td>Scontrino</td><td></td></tr>
<tr><td>id</td><td>57</td></tr>
</table><br /><br />IP: xxxxxxx
                )

        )

)

: Re:problemino autocompleter db con doppio textbox
: vales 28 Jun 2016, 16:25:38
mi sembra strana questa riga
:
    $json[] = array('id' => $uno['nomeprodotto'], 'text' => $uno['codiceprodotto']);
a logica id dovrebbe essere associato a codiceprodotto e text a nomeprodotto

ma non conoscendo i campi delle tabelle usate per autocompleter e db save è difficile essere precisi
: Re:problemino autocompleter db con doppio textbox
: Ago_ 28 Jun 2016, 16:40:48
mi sembra strana questa riga
:
    $json[] = array('id' => $uno['nomeprodotto'], 'text' => $uno['codiceprodotto']);
a logica id dovrebbe essere associato a codiceprodotto e text a nomeprodotto

ma non conoscendo i campi delle tabelle usate per autocompleter e db save è difficile essere precisi

mmm...in effetti non avevo mai fatto caso a quell'id in mezzo al codice...

la tabella dei codici è composta solo da due campi (codiceprodotto,nomeprodotto), non esiste nessun campo id in questa tabella.

il campo id esiste nella tabella di salvataggio del form, a parte ovviamente (campo autoincrementale che crea il sistema chronoforms alla creazione della tabella di salvataggio del form)
: Re:problemino autocompleter db con doppio textbox
: vales 28 Jun 2016, 17:33:23
dal debug che hai postato e da quello che hai precisato penso che il codice dovrebbe essere modificato così:
:
<?php
foreach($form->data['Datacom'] as $uno){
    if(!empty(
$form->data['tag']) AND stripos($uno['nomeprodotto'], $form->data['tag']) === false){
        continue;
    }
    
$json[] = array('id' => $uno['codiceprodotto'], 'text' => $uno['nomeprodotto']);
}
echo 
json_encode($json);
?>

inoltre nei campi della tabella che viene salvata non ci sono i campi codice e nome
: Re:problemino autocompleter db con doppio textbox
: Ago_ 28 Jun 2016, 17:56:37
dal debug che hai postato e da quello che hai precisato penso che il codice dovrebbe essere modificato così:
:
<?php
foreach($form->data['Datacom'] as $uno){
    if(!empty(
$form->data['tag']) AND stripos($uno['nomeprodotto'], $form->data['tag']) === false){
        continue;
    }
    
$json[] = array('id' => $uno['codiceprodotto'], 'text' => $uno['nomeprodotto']);
}
echo 
json_encode($json);
?>

inoltre nei campi della tabella che viene salvata non ci sono i campi codice e nome

con questo codice nel form si invertono, quindi nel codice autocompleter si vede il nome...e nel campo nome compare il codice
appena salvo nella mail e nel db in entrambi i campi compare il codice

nella tabella di salvataggio ci sono molte colonne tra cui codiceprodotto (dove si salva il codice e nomeprodotto per il nome)

io mi chiedo, questo "id" nel codice a cosa si riferisce, purtroppo non sono un programmatore da zero e qualche passaggio delle stringhe mi salta...
: Re:problemino autocompleter db con doppio textbox
: vales 28 Jun 2016, 18:17:21
nella tabella di salvataggio ci sono molte colonne tra cui codiceprodotto (dove si salva il codice e nomeprodotto per il nome)

appunto nel form non hai campi con quei nomi, quindi non possono essere salvati.

id e text sono nella funzione ajax e non influiscono nelle successive operazioni. text è ciò che si vede nel campo e id e ciò che viene inserito realmente come valore.

hai un link al form
: Re:problemino autocompleter db con doppio textbox
: Ago_ 28 Jun 2016, 18:20:12
appunto nel form non hai campi con quei nomi, quindi non possono essere salvati.

id e text sono nella funzione ajax e non influiscono nelle successive operazioni. text è ciò che si vede nel campo e id e ciò che viene inserito realmente come valore.

hai un link al form

allora se nomino i due campi della tabella di salvataggio con codiceprodotto e nomeprodotto come nella tabella del read DB...dovrebbe funzionare...
: Re:problemino autocompleter db con doppio textbox
: vales 28 Jun 2016, 18:36:43
direi di si
: Re:problemino autocompleter db con doppio textbox
: Ago_ 28 Jun 2016, 18:56:09
niente, con queste impostazioni e campi db uguali alla tabella dei codici, nel form si invertono i campi e nel db/mail si visualizza in entrambi il codice

questo il link
http://atalabici.net/garanzia/index.php?option=com_chronoforms5&view=form&Itemid=127 (http://atalabici.net/garanzia/index.php?option=com_chronoforms5&view=form&Itemid=127)
: Re:problemino autocompleter db con doppio textbox
: vales 28 Jun 2016, 19:08:45
mi sembra che in campo nome prende il valore del codice e questo dipende dal javascript che hai realizzato
: Re:problemino autocompleter db con doppio textbox
: Ago_ 28 Jun 2016, 19:11:29
mi sembra che in campo nome prende il valore del codice e questo dipende dal javascript che hai realizzato

allora il colpevole è qua...

:
jQuery(document).ready(function(jQ) {
  jQ('#codiceprodotto').on("select2-selecting", function(evt) {
    jQ('#nomeprodotto').val(evt.choice.id);
  });
});

: Re:problemino autocompleter db con doppio textbox
: Ago_ 29 Jun 2016, 08:59:07
vales grazie per l'aiuto, ma visto i problemi ho deciso di unire i due campi nomeprodotto e codice prodotto e fare unico campo textbox con autocompleter, così taglio la testa al toro. se vuoi vedere l'effetto il link rimane valido.
: Re:problemino autocompleter db con doppio textbox
: giusebos 29 Jun 2016, 10:07:56
se posso darti un consiglio, alla voce class inserisci una di queste classi,

L in maiuscolo, così avrai ampliato le dimensioni dei box secondo bootstrap

Queste le classi complete che puoi usare per ridimensionare i box

XS, S, M, L, XL

: Re:problemino autocompleter db con doppio textbox
: Ago_ 29 Jun 2016, 10:14:21
se posso darti un consiglio, alla voce class inserisci una di queste classi,

L in maiuscolo, così avrai ampliato le dimensioni dei box secondo bootstrap

Queste le classi complete che puoi usare per ridimensionare i box

XS, S, M, L, XL

buono a sapersi...thx giusebos