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

Moderatore
Membro dello Staff
MOD
28 Nov 2014
432
73
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 Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
W MySQL SELECT list dinamica MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
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
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
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

Discussioni simili