Ciao a tutti
ho seguito questo tutorial
https://www.html.it/pag/66042/dettag...-di-un-record/
funziona tutto, ma quando arrivo a modificare o cambiare i dati del form la funzione salva non sembra funzionare.
Questo è il mio esempio
Codice PHP:
$azioniAmmesse = array('lista','dettaglio','form','salva','elimina');
$azione='';
if(isset($_REQUEST['azione'])) {
$azione = $_REQUEST['azione'];
if(!in_array($azione, $azioniAmmesse)){
$azione='';
}
}
switch ($azione) {
case "salva":
salva();
$contenuto=lista();
break;
case "elimina":
elimina();
$contenuto=lista();
break;
case 'lista':
$contenuto = lista();
break;
case 'form':
$contenuto = form();
break;
case 'dettaglio':
$contenuto = dettaglio();
break;
default:
$contenuto = lista();
break;
}
function form() {
global $conn;
$id = $_GET['id'];
$sql = "SELECT * FROM siti1 WHERE id=:id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':id',$id,PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$out='';
$out.='<form name="info" action="?" method="post">';
$out.='<input type="hidden" id="azione" name="azione" value="salva">';
$out.='<input type="hidden" id="id" name="id" value="'.$id.'">';
$out.='<label for="name">Nome</label><br /><input type="text" id="name" name="name" value="'.$row['name'].'"><br />';
$out.='<label for="crono">Crono</label><br /><input type="text" id="crono" name="crono" value="'.$row['crono'].'"><br />';
$out.='<label for="tipo">Tipo</label><br /><input type="text" id="tipo" name="tipo" value="'.$row['tipo'].'"><br />';
$out.='<input type="submit" class="btn btn-success" value="salvataggio">' ;
$out.='</form>';
return($out);
}
function salva() {
global $conn;
$id = $_GET['id'];
$name=$_REQUEST["name"];
$crono=$_REQUEST["crono"];
$tipo=$_REQUEST["tipo"];
if($id==0){
$sql = 'INSERT INTO siti1 (name, crono, tipo) VALUES(:name, :crono, :tipo)';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':name',$name,PDO::PARAM_STR);
$stmt->bindParam(':crono',$crono,PDO::PARAM_STR);
$stmt->bindParam(':tipo',$tipo,PDO::PARAM_STR);
$stmt->execute();
}
else{
$sql='UPDATE siti1 SET name=:name, crono=:crono, tipo=:tipo WHERE id=:id LIMIT 1 ';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':id',$id,PDO::PARAM_INT);
$stmt->bindParam(':name',$name,PDO::PARAM_STR);
$stmt->bindParam(':crono',$crono,PDO::PARAM_STR);
$stmt->bindParam(':tipo',$tipo,PDO::PARAM_STR);
$stmt->execute();
}
}
Il form visualizza i campi del db, quindi la query funziona, ma se provo a modificare i dati non cambia e non aggiunge come se non leggesse la funzione salva.
Grazie per eventuali suggerimenti