Segui il video qui sotto per vedere come installare il nostro sito come web app sulla tua schermata principale.
Nota: Questa funzionalità potrebbe non essere disponibile in alcuni browser.
Pubblicità
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Visualizza contatti</title>
<link rel="icon" type="image/x-icon" href="[URL]https://thefutureita.altervista.org/boy.png[/URL]" />
<style>
save-button {
background-color: #4CAF50; /* Cambiato il colore del pulsante in verde */
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #dddddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
.remove-button, .edit-button, .save-button, .cancel-button {
background-color: #f44336;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
.edit-button {
background-color: #4CAF50;
}
</style>
</head>
<body>
<table id="contatti">
<thead>
<tr>
<th>Nome</th>
<th>Cognome</th>
<th>Numero di Telefono</th>
<th>Professione</th>
<th>Email</th>
<th>Indirizzo</th>
<th>Paese</th>
<th>Note</th>
<th>Azioni</th>
</tr>
</thead>
<tbody>
<?php
// Creazione della connessione
$conn = new mysqli($servername, $username, $password, $dbname);
// Verifica della connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
// Funzione per ottenere i valori da un campo e assicurarsi che siano sicuri per l'uso nel database
function sanitize_input($conn, $data) {
return mysqli_real_escape_string($conn, htmlspecialchars($data));
}
// Se il form è stato inviato
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Verifica se l'ID e i nuovi valori sono stati inviati correttamente
if (isset($_POST['id']) && isset($_POST['nome']) && isset($_POST['cognome']) && isset($_POST['numero_telefono']) && isset($_POST['professione']) && isset($_POST['email']) && isset($_POST['indirizzo']) && isset($_POST['paese']) && isset($_POST['note'])) {
// Prendi i valori inviati e sanitizzali
$id = sanitize_input($conn, $_POST['id']);
$nome = sanitize_input($conn, $_POST['nome']);
$cognome = sanitize_input($conn, $_POST['cognome']);
$numero_telefono = sanitize_input($conn, $_POST['numero_telefono']);
$professione = sanitize_input($conn, $_POST['professione']);
$email = sanitize_input($conn, $_POST['email']);
$indirizzo = sanitize_input($conn, $_POST['indirizzo']);
$paese = sanitize_input($conn, $_POST['paese']);
$note = sanitize_input($conn, $_POST['note']);
// Query SQL per aggiornare i dati del contatto
$sql = "UPDATE agenda SET nome='$nome', cognome='$cognome', numero_telefono='$numero_telefono', professione='$professione', email='$email', indirizzo='$indirizzo', paese='$paese', note='$note' WHERE id='$id'";
if ($conn->query($sql) === TRUE) {
echo "Record aggiornato con successo";
} else {
echo "Errore nell'aggiornamento del record: " . $conn->error;
}
} else {
echo "Errore: tutti i campi devono essere compilati";
}
}
// Se viene inviata una richiesta di rimozione del contatto
if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET['remove_id'])) {
$remove_id = sanitize_input($conn, $_GET['remove_id']);
$sql = "DELETE FROM agenda WHERE id='$remove_id'";
if ($conn->query($sql) === TRUE) {
echo "Record rimosso con successo";
} else {
echo "Errore nella rimozione del record: " . $conn->error;
}
}
// Query SQL per selezionare i dati dalla tabella agenda
$sql = "SELECT * FROM agenda";
$result = $conn->query($sql);
// Output dei dati nella tabella
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td><input type='text' value='".$row["nome"]."' id='nome_".$row["id"]."' disabled></td>";
echo "<td><input type='text' value='".$row["cognome"]."' id='cognome_".$row["id"]."' disabled></td>";
echo "<td><input type='text' value='".$row["numero_telefono"]."' id='numero_telefono_".$row["id"]."' disabled></td>";
echo "<td><input type='text' value='".$row["professione"]."' id='professione_".$row["id"]."' disabled></td>";
echo "<td><input type='text' value='".$row["email"]."' id='email_".$row["id"]."' disabled></td>";
echo "<td><input type='text' value='".$row["indirizzo"]."' id='indirizzo_".$row["id"]."' disabled></td>";
echo "<td><input type='text' value='".$row["paese"]."' id='paese_".$row["id"]."' disabled></td>";
echo "<td><input type='text' value='".$row["note"]."' id='note_".$row["id"]."' disabled></td>";
echo "<td>";
echo "<button class='remove-button' onclick='rimuoviContatto(".$row["id"].")'>Rimuovi</button>";
echo "<button class='edit-button' onclick='modificaContatto(".$row["id"].")'>Modifica</button>";
echo "<button class='save-button' onclick='salvaModifiche(".$row["id"].")' style='display:none; background-color: #4CAF50;'>Salva</button>";
echo "<button class='cancel-button' onclick='annullaModifiche(".$row["id"].")' style='display:none;'>Annulla</button>";
echo "</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='9'>Nessun contatto trovato nel database.</td></tr>";
}
$conn->close();
?>
</tbody>
</table>
<br>
<!-- Pulsante per il reindirizzamento -->
<div style="text-align: center; margin-top: 20px;">
<button style="background-color: #4CAF50; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer;" onclick="window.location.href = '[URL='https://thefutureita.altervista.org/agenda.php%27;']https://thefutureita.altervista.org/agenda.php';[/URL]">Vai indietro</button>
</div>
<script>
// Funzione per abilitare la modifica dei campi
function modificaContatto(id) {
var inputs = document.querySelectorAll('input[type="text"]');
inputs.forEach(function(input) {
input.disabled = false;
});
var editBtns = document.querySelectorAll('.edit-button');
editBtns.forEach(function(btn) {
btn.style.display = 'none';
});
var saveBtns = document.querySelectorAll('.save-button');
saveBtns.forEach(function(btn) {
btn.style.display = 'inline-block';
});
var cancelBtns = document.querySelectorAll('.cancel-button');
cancelBtns.forEach(function(btn) {
btn.style.display = 'inline-block';
});
}
// Funzione per salvare le modifiche a un contatto
function salvaModifiche(id) {
var nome = document.getElementById('nome_' + id);
var cognome = document.getElementById('cognome_' + id);
var numero_telefono = document.getElementById('numero_telefono_' + id);
var professione = document.getElementById('professione_' + id);
var email = document.getElementById('email_' + id);
var indirizzo = document.getElementById('indirizzo_' + id);
var paese = document.getElementById('paese_' + id);
var note = document.getElementById('note_' + id);
// Disabilita gli input
nome.disabled = true;
cognome.disabled = true;
numero_telefono.disabled = true;
professione.disabled = true;
email.disabled = true;
indirizzo.disabled = true;
paese.disabled = true;
note.disabled = true;
// Chiamata AJAX per aggiornare i dati nel database
var xhr = new XMLHttpRequest();
xhr.open("POST", window.location.href, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
alert("Modifiche salvate con successo");
window.location.reload();
}
};
xhr.send("id=" + id + "&nome=" + nome.value + "&cognome=" + cognome.value + "&numero_telefono=" + numero_telefono.value + "&professione=" + professione.value + "&email=" + email.value + "&indirizzo=" + indirizzo.value + "&paese=" + paese.value + "¬e=" + note.value);
}
// Funzione per annullare le modifiche a un contatto
function annullaModifiche(id) {
window.location.reload();
}
// Funzione per rimuovere un contatto
function rimuoviContatto(id) {
// Richiesta AJAX per rimuovere il contatto
var xhr = new XMLHttpRequest();
xhr.open("GET", window.location.href + "?remove_id=" + id, true);
xhr.onreadystatechange = function() {
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
alert("Contatto rimosso con successo");
window.location.reload();
}
};
xhr.send();
}
</script>
</body>
</html>
e come faccio sul database? cioè quali sono i passaggi?Ciao, pubblica il codice.
In genere si usa un database per queste cose...
non sono un grande esperto scusatemi
DESCRIBE agenda;
CREATE TABLE `tbl_agenda` (
`id` INT(20) AUTO_INCREMENT,
`id_user` INT(20),
`nome` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`cognome` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
`telefono` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci,
`professione` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
`email` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
`indirizzo` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
`paese` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
`note` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
PRIMARY KEY (`id`)
);
CREATE TABLE `tbl_agenda` (
`id` INT(20) AUTO_INCREMENT,
`nome` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`cognome` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
`telefono` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci,
`professione` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
`email` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
`indirizzo` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
`paese` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
`note` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
PRIMARY KEY (`id`)
);
CREATE TABLE `tbl_agenda_user` (
`id_agenda` INT(20),
`id_user` INT(20),
);
$sql = "SELECT * FROM agenda WHERE id_user" = ".$id;