Sostituzione Elemento Html

Emanuele85

Utente Attivo
30 Gen 2021
117
0
16
Buonasera a tutti e buon anno, eccomi qua...alle strette di nuovo... sto perdendo i capelli a questo giro :).
Vi spiego il mio problema, ho una tabella mysql nella quale sono registrate delle info, la tablella è molto semplice, sono 4 campi:
ID Codice Descrizione MacroCategoria
1 10.0.0.1 Lavorazione XXXXX 1
2 10.0.0.2 Lavorazione YYYYY 2
3 10.0.0.3 Lavorazione ZZZZZ 3

Sul mio Form ho una select con l'elendo dei codici ( che popolo con una funzione ogni volta che la pagina fa il load). Con l'evento change chiamo lo stesso file php (è un file contenente tante funzioni) e vado a popolare la casella descrizione e una casella nascosta con MacroCategoria. Quest'ultimo mi serve per stabilire il colore del testo nella casella (1 - verde, 2-giallo, 3-rosso). E' un po contorto ma funziona. In pratica quel codice stabilisce la pericolosità della lavorazione e di conseguenza voglio contrassegnarla con un colore.

Vi posto il codice:

HTML:
<div class="col-2">
    <label for="formFile" class="form-label">Cod. Rischio</label>
    <select class="form-control" aria-label="Default select example" id="txtcod_rischio_azienda" name="txtcod_rischio_azienda">
        <option value="<?php  echo $row1->cod_rischio;?>"><?php  echo $row1->cod_rischio;?></option>
        <option disabled>- - -</option>
        <?php
       GetCodRischio();
        ?>
    </select>
</div>

Pagina Html

<div id ="div_descr_codrisc" class="col-4">
    <label for="formFile" class="form-label">Dettaglio Cod. Rischio</label>
    <input type="text"   id="txtdescr_codris_azienda"  name="txtdescr_codris_azienda " style="font-weight: bold;" value="<?php echo $row1->descr_codrischio;?>"
           <?php
    if ($row1->val_rischio=="1"){
    ?>
    class="text-success form-control "
    <?php
     }elseif ($row1->val_rischio=="2") {
      ?>
    class="text-warning form-control "
    <?php
       }elseif ($row1->val_rischio=="3") {
        ?>
    class="text-danger form-control "
    <?php
        }elseif ($row1->val_rischio=="") {
         ?>
    class="form-control "
    <?php
         }
        ?>
    >
</div>

JavaScript:
  <script type="text/javascript">

  $(function() {
    $('#txtcod_rischio_azienda').on('change', function() {
      
       var txtcod_rischio_azienda = $('#txtcod_rischio_azienda').val();
       var test=1;
       $.ajax({
        type:'post',
        url:'./function/funzioni.php',
        data : {'txtcod_rischio_azienda' : txtcod_rischio_azienda,'test':test},
        success : function(data){

           $('#div_descr_codrisc').html(data);
        }
       });

    });
  });

  </script>

Funzione:
PHP:
if (isset($_POST['txtcod_rischio_azienda'])&& trim($_POST["txtcod_rischio_azienda"]) != "") {
echo '<script type="text/javascript">alert("Sei Passato qui");</script>';
    $txtcod_rischio_azienda = ($_POST['txtcod_rischio_azienda']);
    $test = ($_POST['test']);

    if ($test=="1"){
        $test=="0";
    $sql = "SELECT * FROM codicerischio where Codice =:txtcod_rischio_azienda";

    $query = $dbh -> prepare($sql);
     $query->bindParam(':txtcod_rischio_azienda',$txtcod_rischio_azienda,PDO::PARAM_STR);

    $query->execute();
    $results=$query->fetchAll(PDO::FETCH_OBJ);

    if (($query->rowCount() > 0))    {

        foreach($results as $row)
        {
    
                $html='<label for="formFile" class="form-label">Dettaglio Cod. Rischio</label>';

                if ($row->MacroCategoria=="1"){
                    $html.='<input type="text" class="text-success form-control "  id="txtdescr_codris_azienda"  name="txtdescr_codris_azienda" style="font-weight: bold;" value="'.$row->Descrizione.'">';

                }elseif ($row->MacroCategoria=="2"){
                    $html.='<input type="text" class="text-warning form-control "  id="txtdescr_codris_azienda"  name="txtdescr_codris_azienda" style="font-weight: bold;" value="'.$row->Descrizione.'">';
                }elseif ($row->MacroCategoria=="3"){
                        $html.='<input type="text" class="text-danger form-control "  id="txtdescr_codris_azienda"  name="txtdescr_codris_azienda" style="font-weight: bold;" value="'.$row->Descrizione.'">';
                    }
                    $html.='<input type="hidden" class="text-danger form-control "  id="hidden_codris_azienda"  name="hidden_codris_azienda" style="font-weight: bold;" value="'.$row->MacroCategoria.'">';

                echo $html;
    }

    }else{

    }
}
}

Tutto funziona bene se seleziono il valore del codice... Ma se Salvo i dati senza cambiare selezionare il codice mi succede una cosa strana ( strana per me ovviamente), è come se venisse comunque chiamata la funzione php (non passando per ajax), senza alcun valore per cui mi svuota i campi...ma cosa bellissima, in alto sullo schermo vedo la stessa input corretta, anche nei colori, quindi è come se venisse duplicata (una la vedo al posto giusto del form ma vuota, una in alto sullo schermo con i dati)

PS. Nella funzione passo anche la casella hidden altrimenti non saprebbe al ricaricare della pagina il colore da utilizzare per il testo. Se ci sono altre soluzioni...MAGARI!

Sicuramente il problema nasce dal fatto che passo l'html ma non riesco a risolvere, chiama la funzione anche quando non dovrebbe.
Sapete dirmi dove sto sbagliando?

Grazie mille come al solito
saluti
E
 

Emanuele85

Utente Attivo
30 Gen 2021
117
0
16
Ho fatto altri piccoli test, e sono giunto a conclusione che il tutto funziona fino a quando le due text (Descrizione e Hidden) le invia ajax, nel momento in cui si ricarica la pagina, legge i dati dal db e "usa" le text che ho scritto nell'HTML, se salvo il Post è vuoto. Non capisco perchè dato che se faccio ispeziona da browser vedo praticamente i dati corretti.
Avete qualche info utile?

Grazie mille
 

Emanuele85

Utente Attivo
30 Gen 2021
117
0
16
Dopo questa potete cacciarmi dal Forum...:eek:

Ho trovato il problema... o almeno è l'unica cosa che è cambiata:

name="txtdescr_codris_azienda" e non name="txtdescr_codris_azienda "

Sono 2 sere che perdo tempo per uno spazio dopo la lettera "a"...

Bannatemi pure!!!!

Buonanotte a tutti e grazie cmq...
E
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
437
73
28
Ciao, mi fa piacere che tu abbia risolto. Nessun ban, anzi grazie per aver condiviso queste informazioni che a volte non sono così scontate :)
Buon proseguimento
 
Discussioni simili
Autore Titolo Forum Risposte Data
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
C input in sostituzione della select PHP 2
G Sostituzione NVR IP Cam e Videosorveglianza 1
A Sostituzione telecamera h 264 con una telecamera professionale IP Cam e Videosorveglianza 0
felino Alcatel POP4 Plus: sostituzione batteria Smartphone e tablet 0
C [PHP] sostituzione di alcune lettere nelle stringheo PHP 1
G [PHP] Sostituzione caratteri PHP 2
T sostituzione testo in un file txt. PHP 4
L sostituzione contenuto diversi div con document.getelementbyid Javascript 1
JackIlPazzo Sostituzione sbagliata in array PHP 1
I sostituzione registrazione PHP 1
X Problema di sostituzione tramite query sql MySQL 5
I Menu senza refresh - sostituzione vecchi frame HTML jQuery 2
P Problema caricamento/sostituzione immagini galleria php-jquery jQuery 2
Frank10 Sostituzione ram = Schermo Nero Hardware 1
T PHP - Sostituzione immagine dopo un certo tempo PHP 4
Monital Sostituzione in file txt PHP 8
T javascript controllo campo e sostituzione lettere... Javascript 3
Y sostituzione di un file immagine da form PHP 18
P Sostituzione stringhe sulla base di una tabella di conversione MySQL 2
M funzione di ricerca e sostituzione PHP 0
C upload baol e sostituzione immagini in db access Classic ASP 1
G Sostituzione di document.all Javascript 1
S Php - Sostituzione Stringhe PHP 1
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
D Spazio vuoto in un elemento di un array php PHP 2
M Posizionare una tabella con scroll su un elemento specifico PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
S [PHP] individuare chiave elemento array PHP 7
Cosina [PHP] Impostare colore singolo elemento in fwrite PHP 2
S aggiornare valore di un elemento xml con php PHP 8
S [PHP] recuperare determinato elemento con lo scraping PHP 1
M [WordPress] [HTML] SVG tag: aumentare dimensioni elemento 'path' WordPress 0
Andrea_Ventura [HTML] Problema centrare elemento orizzontalmente HTML e CSS 9
C Cancellare un elemento del DOM jQuery 4
C [PHP] eliminare elemento da un array multidimensionale PHP 9
C [Javascript] cambio dinamico riferimento elemento html Javascript 2
asevenx modificare lista elementi togliendo l'elemento selezionato jQuery 1
G [RISOLTO][Javascript] aggiungere elemento ad array definito nella finestra madre da popup Javascript 4
F inserimento ordinato di un elemento in un array ordinato C/C++ 1
S [RSS] Gli RSS si aggiornano in base al tempo o ad un nuovo elemento? XML 2
A [Javascript] addClass da un elemento in poi Javascript 5
S [Javascript] Sostituire elemento HTML preso randomicamente dentro array Javascript 1
F visibilità nuovo elemento html creato con jquery jQuery 2
A [Javascript] richiamare lo pseudo elemento after Javascript 1
R [Photoshop] Selezionare elemento in immagine ed esportarlo Photoshop 3
C CSS elemento tagliato fuori da div HTML e CSS 9
A creare un nuovo elemento ul in un menu jQuery 1
Marco_88 Aggiornare elemento DOM jQuery 9

Discussioni simili