Select concatenata che non funziona la seconda volta

_Rosy_

Nuovo Utente
29 Nov 2020
2
0
1
Ciao a tutti, premetto che sono una neofita in php, jquery, javascript, tutto!
Sto creando una serie di select concatenate Regione ->provincia->comune e così via. Sono al livello provincia->comune e la select (che si popola da un DB) funziona: quando seleziono una provincia la seconda si popola coi suoi comuni. Il problema sorge quando modifico la provincia (dopo aver già effettuato una prima chiamata): il console.log mi mostra che il viene chiamato un nuovo json corretto (coi nuovi comuni della nuova provincia selezionata) ma non riesco ad aggiornare la lista che mi viene stampata a schermo (che resta ferma alla prima selezione provinciale che ho fatto). So che l'argomento è stato trattato molto ma non sono riuscita a trovare una discussione con questo specifico problema, mi scuso se quindi il thread è ripetitivo.
Grazie a tutti
Posto il codice:
index.php
Codice:
<!DOCTYPE html>
<html>

<select id="scegliprovincia"></select>
<select id="sceglicomune"></select>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){

    $.ajax({
    type:"POST",
    url:"estraiprovincia.php",
    //data:{"nuovo_indirizzo":miocomune},
    success: function(response){
    console.log(response);
    riempiselect(response,"scegliprovincia","dsxdpt");
    
            }
    });
    $("#scegliprovincia").change(function() {
    $.ajax({
    type:"POST",
    url:"estraicomune.php",
    data:{ "select" : $('#scegliprovincia').val()},
    success: function(response){
        riempiselect(response,"sceglicomune","dsxcnl");
    
            }
        });       
    });

});
function riempiselect(nome_json,nome_select, info) {
    var jparsed=JSON.parse(nome_json);
    $("#"+nome_select).append("<option>"+"Effettua una scelta"+"</option>");
    for (chiave in jparsed) {
    $("#"+nome_select).append("<option>"+jparsed[chiave][info]+"</option>");
    }
}

</script>
</html>

estraicomune.php (estraiprovincia non lo posto ma è pressocchè identico)
PHP:
<?php


include("function/connessione.php");
$provincia= $_POST['select'];

$i=$con->query("select distinct dsxcnl from molise_prova where dsxdpt='$provincia' order by dsxcnl");
$row=$i->fetchAll(PDO::FETCH_ASSOC);

echo json_encode($row);


?>
 

WmbertSea

Utente Attivo
28 Nov 2014
205
32
28
Ciao, da quel che vedo il metodo "append" di jQuery va ad aggiungere gli elementi in fondo al contenitore. In questo caso le nuove <option>, dopo ogni selezione del primo select, vanno ad aggiungersi in fondo a quelle già presenti dentro il secondo select. Prova a verificare se è così.

Il problema sta proprio in quell'append.
Eventualmente prova a sostituire questa riga che sta dentro la funzione riempiselect():
Codice:
$("#"+nome_select).append("<option>"+"Effettua una scelta"+"</option>");
con questa:
Codice:
$("#"+nome_select).html("<option>"+"Effettua una scelta"+"</option>");
In sostanza, anziché il metodo "append" ci sarà il metodo "html". Questo fa in modo di sostituire l'intero contenuto (esistente) col nuovo html specificato. Puoi quindi capire che applicando tale metodo, il primo <option> (che sostanzialmente viene riscritto uguale dopo ogni selezione) va a rimpiazzare tutto ciò che era già presente. Chiaramente a seguire verrà comunque applicato un ciclo di append con le nuove <option> relative alla risposta del server appena ricevuta.

Prova e fai sapere.
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [Javascript] Select concatenata php csv Javascript 3
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
Emix Select concatenate php sql ajax PHP 2
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
T [PHP] Autocompilazione input multiple da una select PHP 1
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
M [PHP] Problema con query select PHP 2
C [PHP] Controllo <select> comportamento anomalo PHP 2
G [PHP] Select con opzioni dipendenti da un'altra select PHP 3
L [Javascript] Select option in campi input Javascript 4
M [PHP] Problemi con select PHP 6
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
max1974 [Javascript] malfunzionamento select Javascript 0
M [PHP] Drop down in campo select PHP 1
D [PHP] Select dinamici PHP 2
G sql select con array in php PHP 1
L [PHP] Form da select compilare campi automaticamente PHP 1
T [php] problema creazione query select-where PHP 5
Monital [PHP] query update e select insieme ma frazionando l'arrray PHP 12
G [Javascript] Campo a comparsa di select Javascript 0
S [PHP] restituire intera frase da una select PHP 7
A [PHP] select a cascata regione province e comuni PHP 5
maxnegri Sommare i prezzi dei prodotti aggiunti al carrello di diverse aziende con Select sum php mysqli PHP 10
A [PHP] Errore select dati da db PHP 0
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
S [WordPress] Creare una select box con partita iva e codice fiscale in base a una logica. WordPress 0

Discussioni simili