Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 12 su 12

Discussione: Select autocomplete

  1. #11
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,730
    se il problema è php certamente è da postare in quelle sezione.
    il problema di ottenere risposta a video è risolto?

  2. #12
    La soluzione più vicina a quello che mi serve ma comunque insufficiente (stò ancora cercando aiuto) è il mix tra quello che ho imparato in un tutorial e uno script che ho trovato in rete, ma qualcosa non funziona, probabilmente ci sono istruzioni contrastanti anzi sicuramente, e sebbene avrei avuto il piacere di dire che ce l'avevo fatta da me chiedo ancora aiuto.

    Il mio file index.php (ma và anche con index.html) ha tra i tag di apertura <body> e quello di chiusura </body> le seguenti istruzioni:

    <form name="layoutform_ricerca" method="post" action="#">
    ricerca:<input type="text" id="ricerca" name="ricerca" value="GIUSEPPE"><br>
    <span id="risposta"></span>
    </form>
    <script>
    let persone;
    let ric = document.querySelector("#ricerca");
    ric.addEventListener("blur", generaSelect, true);
    let tabellaContainer = document.querySelector("#risposta");
    document.layoutform_ricerca.ricerca.focus();
    document.layoutform_ricerca.ricerca.select();
    function generaSelect(){
    let nome = document.querySelector("#ricerca").value;
    if (ricerca == '') { return; }
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    document.querySelector("#risposta").innerHTML = this.responseText;
    }
    };
    xmlhttp.open("GET", "https://www.miosito.it/select.php?ricerca=" + nome, true);
    xmlhttp.send();
    fetch('select.php', {
    method: 'POST',
    header: {
    'Content-Type': 'application/json'
    }
    })
    .then(response => response.json())
    .then(data => {
    persone = data;
    console.log('Dati ricevuti: ', data);
    let select = `<select size='10'>${generaOption(data)}</select>`;
    tabellaContainer.insertAdjacentHTML('beforeend', select);
    })
    .catch((error) => {
    console.error('Errore: ', error);
    })
    }
    function generaOption(persone){
    let righe = '';
    persone.forEach(persona => {
    let riga = `<option id='${persona.id}'>${persona.cognome} ${persona.nome}</option>id}</td>`;
    righe += riga;
    });
    return righe;
    }
    </script>

    il file select.php invece è il seguente (questo è in php):

    <?php
    require_once 'config.php';


    if (isset($_REQUEST["ricerca"])) { $ricerca = $_REQUEST["ricerca"]; }


    $sql = "SELECT * FROM persone WHERE nome = '$ricerca'";


    if ($result = $connessione->query($sql)) {
    $data=[];
    if ($result->num_rows > 0) {
    while ($row=$result->fetch_array(MYSQLI_ASSOC)) {
    $tmp;
    $tmp['id'] = $row['id'];
    $tmp['nome'] = $row['nome'];
    $tmp['cognome'] = $row['cognome'];
    $tmp['email'] = $row['email'];
    array_push($data, $tmp);
    }
    echo json_encode($data);
    } else {
    echo json_encode($data);
    }
    } else {
    echo "Errore nell'esecuzione di $sql. " . $connessione->error;
    }
    ?>

    Il risultato a video nel tag risposta, una volta abbandonato il focus dal campo ricerca è il seguente:

    [{"id":"1","nome":"GIUSEPPE","cognome":"VERDI","ema il":"VERDI.GIUSEPPE@GMAIL.COM"},{"id":"22","nome": "GIUSEPPE","cognome":"MAZZINI","email":"MAZZINI.GI USEPPE@GMAIL.COM"},{"id":"23","nome":"GIUSEPPE","c ognome":"GARIBALDI","email":"GARIBALDI.GIUSEPPE@GM AIL.COM"}]

    Ciò significa che ricerca viene inviata al file select.php che con tale valore filtra i dati e li restituisce alla mia pagina che visualizza a video il vettore temporaneo (credo) ma non lo formatta come ho richiesto nella function generaSelect e generaOption
    Prima o poi anch'io vi insegnerò qualcosa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.