-
Eliminare dati in MVC
Ciao a tutti, ho creato un sito in php e per eliminare dei dati quindi devo passarli con method DELETE. I dati non li invio direttamente con un form ma passano in uno script in javascript per la gestione degli errori:
Codice:
function ConfermaOperazione(id) {
var richiesta = confirm("Vuoi eliminare le anagrafiche selezionate?\n(premi OK per eliminare, altrimenti ANNULLA)");
if (richiesta === true) {
return //?
}else{
return alert("Le anagrafiche selezionate non verranno eliminate!");
}
}
Dove ho commentato il "?" Andrebbe messo il link che sarebbe:
index.php?page=dettagli&chiave= +id method="DELETE"
Come dovrei fare?
Grazie mille
-
Non ho capito, vedi se può andarti bene:
Codice:
return '<a href="index.php?page=dettagli&chiave='+id+'">elimina</a>';
A quanto ne so, un link non può inviare una richiesta DELETE, ma solamente GET.
Se vuoi inviare una richiesta DELETE, devi inviare una richiesta asincrona.
Ciao!
-
No, non posso usare solo il link ti spiego perché:
Index.php:
Codice PHP:
$pagina = $_GET['page'];
$method = $_SERVER['REQUEST_METHOD'];
switch($pagina){
case 'dettagli':
if($method == 'DELETE'){
require controller/controller_anagrafiche.php;
...
}
Quindi per completare l'operazione ho bisogno del metodo DELETE per forza
-
Bene, quindi dovrai fare una richiesta ajax, o con xmlhttprequest o con i framework, tipo jQuery.
Ciao!
-
In questo modo è corretto?
Codice:
function ConfermaOperazione(id) {
var richiesta = confirm("Vuoi eliminare le anagrafiche selezionate?\n(premi OK per eliminare, altrimenti ANNULLA)");
if (richiesta === true) {
var url = "index.php?page=dettagli&chiave=
fetch(url + id, {method: 'delete'}).then(response=>response.json().then(json => {
return json;
})
);
}else{
return alert("Le anagrafiche selezionate non verranno eliminate!");
}
}
-
Hai provato? Funziona? Se no, la console mostra errori?
Ciao!
-
Ho provato... non mi da nulla... non mi apre nemmeno il primo pezzo per confermare o annullare
-
Dalla console degli sviluppatori non vedi nulla? (F12), ad esempio la mancanza della chiusura della stringa "url"?
Ciao!
-
Credo che l'errore sia questo:
WebSocket Error: Network Error 12030, Connessione al server interrotta in modo anomalo
-
Con quale browser stai provando? Puoi indicare la pagina dove stai lavorando?
Ciao!
-
Stavo usando microsoft edge. Questo è l'errore che mi da chrome:
Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
La pagina non puoi vederla perché è dopo il login quindi ha le sessioni e l'html è scritto nel php se non si avvia dal login non si vede l'html
-
Dall'errore di chrome sembra che la risposta json non sia correttamente definita, o meglio c'è un carattere "<" nella risposta che non fa parte della codifica json.
Utilizza gli strumenti per sviluppatori anche per vedere le richieste e risposte delle chiamate asincrone.
Ciao!
-
Non riesco non so cosa fare
-
Qual è la risposta che ricevi? ti aspetti una risposta json? (immagino di sì perché usi la response.json(), o la usi solo perché hai preso il codice altrove?)
Ciao!
-
Uso json perché è l'unica funzione che conosco però l'ho imparata da poco e non so come muovermi
Ho aperto la pagina delle risposte ma non so cosa guardare
-
Uhm, nell'ultimo codice postato sopra ci sono stringhe non chiuse, quindi è improbabile che compili.
Usare fetch() è una buona idea, vedi questo esempio: https://stackoverflow.com/a/53127045
-
Ora mi esce solo questo [Violation] 'click' handler took 895ms ma comunque non funziona