se il problema è php certamente è da postare in quelle sezione.
il problema di ottenere risposta a video è risolto?
se il problema è php certamente è da postare in quelle sezione.
il problema di ottenere risposta a video è risolto?
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