Form per modifica record database

antonioantonio

Nuovo Utente
27 Set 2015
25
0
0
Ciao a tutti!....volevo chiedervi aiuto....

ho una pagina .php che visulizza, in pratica, in alto una sezione con un form da compilare,dove vengono fatte delle domande:
PHP:
<form method="post" runat="server" action="<?php echo $_SERVER['PHP_SELF']; ?>" autocomplete="on"> 
    <table class="table" align="center">
      <tr>
        <td align="center" colspan="8" class="registro"><h1>REGISTRO</h1></td>
    </tr>

      <tr class="lbl">  
         <td class="lbl"; align="center">DATA</td>
       </td>
	 <td class="lbl"; align="center">UTENTE
       </td>
	 <td class="lbl"; align="center">CATEGORIA
       </td>
	 <td class="lbl"; align="center">SOTTO<br>CATEGORIA
       </td>
         <td class="lbl"; align="center">STATO
       </td>
     </tr>
      <tr>   
         <td> <input type="text" id="data"  name="data" value="" size="10" autocomplete="on">
       </td>
	 <td> <input type="text" id="ut"  name="ut" value="" size="15" autocomplete="on">
       </td>
	 <td> <input type="text" id="cat"  name="cat" value="">
       </td>
	 <td> <input type="text" id="sotcat"  name="sotcat" value="" size="15" autocomplete="on">
       </td>
         <td> <select id="stato"  name="stato" value="">
		<option></option>
		<option>Aperta</option>
		<option>Chiusa</option>
		<option>Annullata</option>
	      </select>
       </td>
     </tr>
       <tr>
         <td class="lbl"; align="center"; colspan="8">DESCRIZIONE
       </td>
     </tr>
       <tr>
	 <td colspan="8"> <input type="text" class="desc" id="desc"  name="desc" value="" size="137" autocomplete="on">
       </td>
     </tr>
       <tr>
	 <td align="center"; colspan="8"><input type="submit" name="inserisci" value="Inserisci"></td>
     </tr>
   </table>
  </form>

Subito sotto vengono mostrate tutte le domande fatte, praticamente una select di tutte le righe presenti nella tabella del db:

PHP:
<table class="tableregistro" border=1 cellspacing=0 cellpadding=3>
<?php

$HOST = 'localhost';
 $USER = 'xxxxx';
 $PASSWORD = 'yyyyyyyy';
$connessione = mysql_connect("$HOST","$USER","$PASSWORD");//database connection
mysql_select_db("xxxyyyy");


$sql = "SELECT * FROM `Registro`\n"
    . "ORDER BY `Registro`.`id` DESC";
$result = mysql_query($sql);

while($r = mysql_fetch_array($result)) {

//Grazie ancora a n1k4r0 per avermi aiutato con la risoluzione di questo mio precedente problema

$d = explode("-", $r['data']);
$dataRelIta = $d[2]. "/" .$d[1] . "/" .$d[0];

echo "<tr bgcolor='#FF8C69'>
	  <td>".$r['id']."</td>".
	 "<td style='width: 80px;'>".$dataRelIta."</td>".
	 "<td>".$r['utente']."</td>".
	 "<td>".$r['categoria']."</td>".
	 "<td style='width: 80px;'>".$r['sottocategoria']."</td>".
	 "<td style='width: 400px;'>".$r['descrizione']."</td>".
	 "<td>".$r['stato']."</td>".
    </tr>";

}

mysql_close($connessione);
?>
</table>

Ora, per la modifica dei record (in pratica la modifica dello stato della domanda "Aperta,Chiusa,In corso, Annullata")

Ho creato una seconda pagina , speculare alla prima , dove però nella riga dove vengono mostrate le domande fatte, aggiungo un tasto 'Modifica'

modifica.php:

PHP:
$sql = "SELECT * FROM `Registro` WHERE stato = \"Aperto\"\n"
    . "ORDER BY `Registro`.`id` DESC";
$result = mysql_query($sql);

while($r = mysql_fetch_array($result)) {

$d = explode("-", $r['data']);
$dataRelIta = $d[2]. "/" .$d[1] . "/" .$d[0];

echo "<tr bgcolor='#FF8C69'><td>"."<input type='submit' name='Modifica' value='Modifica'>"."</td>".
	 "<td>".$r['id']."</td>".
	 "<td style='width: 80px;'>".$dataRelIta."</td>".
	 "<td>".$r['richiedente']."</td>".
	 "<td>".$r['reparto']."</td>".
	 "<td>".$r['categoria']."</td>".
	 "<td style='width: 80px;'>".$r['sottocategoria']."</td>".
	 "<td>".$r['operatore']."</td>".
	 "<td style='width: 400px;'>".$r['descrizione']."</td>".
	 "<td>".$r['stato']."</td>".
	 "<td>".$r['tempoimpiegato']."</td>
    </tr>";

La mia domanda è : Come faccio a fare in modo che alla pressione del tasto 'Modifica' il form sovrastante si autocompili con i dati presenti nel db....permettendo poi la modifica dello stato della richiesta?

Spero di essere stato chiaro...

Grazie a chi vorrà darmi una mano
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.016
174
63
Lombardia
Spero di essere stato chiaro...
sei stato chiarissimo, ma quello che chiedi, abbisogna di uno sviluppo che richiede tempo,
non è la semplice ricerca di un possibile errore
suggerimento,
hai due vie

la più semplice consiste nello sviluppare una sequenza di script che eseguono le operazioni in successione

la più complessa, puoi usare Ajax per farti restituire le informazioni con cui compilare il form, salvo sviluppare gli script di gestione delle operazioni

ciao
Marino
 
Ultima modifica:

antonioantonio

Nuovo Utente
27 Set 2015
25
0
0
Mamma mia!.....possibile che sia così difficile?.....ho letto in giro che è comunque fattibile....dopo non ci ho capito granché ok! .......ma Marino mi sembra tu la stia facendo un po troppo complicata
 

antonioantonio

Nuovo Utente
27 Set 2015
25
0
0
Beh Marino... se ne fossi stato in grado non avrei chiesto aiuto.....

Va beh..... c'è qualcuno più costruttivo che ha voglia di aiutarmi?
 

antonioantonio

Nuovo Utente
27 Set 2015
25
0
0
Allora...
provando a risolvere la cosa, ho pensato di aggiungere nel form un input type dove inserire l'id della richiesta da modificare, con accanto un tasto cerca,

A questo cercherò di fare in modo che recuperando l'id , anche le caselle del form si autocompilino con i dati relativi all'id recuperato.

Per il momento faccio solo una prova di stampa a video dei valori recuperati....prova che fallisce inesorabilmente, a video non viene stampato nulla!!!

Dove sbaglio? Vi posto il codice:

PHP:
if(isset($_POST['Cerca'])){ 

$id = $_POST['Cerca'];

$sql = "SELECT * FROM `Registro` WHERE id = '".$id."'";

$result = mysql_query($sql);

while($r = mysql_fetch_array($result)) {


$d = explode("-", $r['data']);
$dataRelIta = $d[2]. "/" .$d[1] . "/" .$d[0];

echo "<tr><td style='width: 80px;'>".$dataRelIta."</td>".
     "<td>".$r['richiedente']."</td>".
     "<td>".$r['categoria']."</td>".
     "<td style='width: 80px;'>".$r['sottocategoria']."</td>".
     "<td style='width: 400px;'>".$r['descrizione']."</td>".
     "<td>".$r['stato']."</td>".
    </tr>";

Grazie in anticipo.....aiutatemi ad uscire da questo pantano dove mi sono cacciato........
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
se non ho capito male quello che vuoi fare potresti provare a fare qualcosa del genere
PHP:
<?php
//dati di connessione
if(isset($_GET){
	if(isset($_GET['AP'])){$id=(int)$_GET['AP']; $stato="aperta";}
	if(isset($_GET['CH'])){$id=(int)$_GET['CH']; $stato="chiusa";}
	if(isset($_GET['IC'])){$id=(int)$_GET['IC']; $stato="in corso";}
	if(isset($_GET['AN'])){$id=(int)$_GET['AN']; $stato="annullata";}
	//un controllo dell'id se numerico e maggiore di zero
	$up="UPDATE Registro SET stato='$stato' WHERE id=$id";
	$ris=mysql_query($up);
	//e un ritorno automatico alla pagina
}
//.....
$sql = "SELECT * FROM Registro WHERE stato = 'Aperto' ORDER BY id DESC";
$result = mysql_query($sql);
echo "<table>";
echo "<tr><td>id</td><td>data</td><td>richiedente</td><td>reparto</td><td>categoria</td><td>sottocategoria</td><td>descrizione</td><td>stato</td><td>tempo</td>
	<td>apri</td><td>chiudi</td><td>in corso</td><td>annulla</td></tr>";
while($r = mysql_fetch_array($result)){
	$d = explode("-", $r['data']);
	$dataRelIta = $d[2]. "/" .$d[1] . "/" .$d[0];
	$id=$r['id'];
	$richiedente=$r['richiedente'];
	$repartto=$r['reparto'];
	//ecc.. gli altri dati
	echo "<tr><td>$id</td><td>$dataRelIta</td>....
	<td><a href=\"?AP=$id\">apri</a></td>
	<td><a href=\"?CH=$id\">chiudi</a></td>
	<td><a href=\"?IC=$id\">in corso</a></td>
	<td><a href=\"?AN=$id\">annulla</a></td></tr>";
}
echo "</table>";
//....
?>
forse è il sistema più semplice
 

antonioantonio

Nuovo Utente
27 Set 2015
25
0
0
Bellissimo!!

GRAZIE borgo italia!

funziona alla perfezione direi, grazie anche per essere stato l'unico a darmi una mano!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
pensandoci mi è venuta in mente una soluzione migliore
rispetto alla precedente ha come vantaggio
1. puoi modificare più righe contemporaneamente
2. prima di dare il submit puoi verificare di aver fatto giusto
3. è più sicuro, il get è sempre potenzialmente pericoloso
PHP:
<?php
//dati di connessione
if(isset($_POST['aggiorna']){
    if($_POST['cosa']{
		foreach($_POST['cosa'] as $id => $valore){
			switch($valore){
				case 'AP':$stato="aperta";break;
				case 'CH':$stato="chiusa";break;
				case 'IC':$stato="in corso";break;
				case 'AN':$stato="annullata";break;
				default:$stato="aperta";break;//per sicurezza
			}
			$up="UPDATE Registro SET stato='$stato' WHERE id=$id";
			$ris=mysql_query($up);
		}
	}
    //e un ritorno automatico alla pagina
}
//.....
$sql = "SELECT * FROM Registro WHERE stato = 'Aperto' ORDER BY id DESC";
$result = mysql_query($sql);
echo "<form action='$_SERVER['PHP_SELF']' method='post'>"
echo "<table>";
echo "<tr><td>id</td><td>data</td><td>richiedente</td><td>reparto</td><td>categoria</td><td>sottocategoria</td><td>descrizione</td><td>stato</td><td>tempo</td>
    <td>apri</td><td>chiudi</td><td>in corso</td><td>annulla</td></tr>";
while($r = mysql_fetch_array($result)){
    $d = explode("-", $r['data']);
    $dataRelIta = $d[2]. "/" .$d[1] . "/" .$d[0];
    $id=$r['id'];
    $richiedente=$r['richiedente'];
    $repartto=$r['reparto'];
    //ecc.. gli altri dati
    echo "<tr><td>$id</td><td>$dataRelIta</td>....
    <td>apri <input name='cosa[$id]' type='radio' value='AP'></td>
    <td>chiudi<input name='cosa[$id]' type='radio' value='CH'></td>
    <td>in corso<input name='cosa[$id]' type='radio' value='IC'></td>
    <td>annulla<input name='cosa[$id]' type='radio' value='AN'></td></tr>";
}

echo "<tr><td>id</td><td>&nbsp;</td><td>&nbsp;</td>....<td>tempo</td>
    <td>apri</td><td>chiudi</td><td>in corso</td><td><input name='aggiorna'type='submit' id='aggiorna' value='aggiorna'></td></tr>";
echo "</table>";
echo "</form>";
//....
?>
provalo, l'ho buttato giu di corsa e quindi posso essermi dimenticato/sbagliato qualcosa
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Modifica form per inviare immagini a indirizzo meil PHP 1
H modifica form mail per redirect PHP 1
L form immagini per il database PHP 0
U PHP bottone per invio mail o ritorno al form PHP 15
T [PHP] Creare Honeypot per form contatti PHP 10
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
M [PHP] Framework per form complessi (configuratore prodotto) PHP 6
S [PHP] Aiuto creazione form php per completamento modello word PHP 1
Z [MySQL] Campi corretti per form... MySQL 2
sandropochi [PHP] Form per creare filtro di ricerca su DB PHP 8
K [WordPress] Plugin per inserire un form per la ricerca in un database.. come si fa? WordPress 1
U [PHP] form per ricerca multipla: Unknown column 'undefined' in 'where clause' PHP 2
S Concatenare due campi di un form per creare un indirizzo web valido Javascript 7
xone Form completo Testi + multiple image per inserimento Annunci PHP 0
C Come posso integrare il bottone "paga adesso" di paypal e un form php per invio dati? PHP 1
F aiuto per funzionamento sito responsive e form contatti HTML e CSS 29
elpirata Idee per personalizzare form HTML e CSS 9
L errore mysql per form di registrazione PHP 3
E Correzione per form PHP/HTML PHP 3
B Problema form mail per invio doppio allegato PHP 1
P Recupero dati per select form PHP 9
A Problema orario invio mail per form PHP 4
A consiglio uso jquery php per mostrare parte di un form PHP 6
A consiglio uso jquery per mostrare parte di un form jQuery 0
A Aiuto per Select form dinamica PHP 0
L come passare il campo allegato dal file html al fiel php per spedirlo con un form PHP 12
S Form per mandare la mail HTML e CSS 2
M [risolto] Script ajax per form e mappe Ajax 6
B aiuto per Form di eliminazione record PHP 21
asevenx form per formattare testo e inserirlo in databse PHP 1
U form mail per inviare tracciabilità corriere PHP 0
L Aiuto per ultimazione form invio email PHP 3
F Controlli form per Registrazione utenti PHP 9
A Pulsante per compilare una form php in automatico con dati presi da un db PHP 6
F Crear un form Contatti, per un Bed&Breakfast, dinamico, con Wordpress WordPress 3
A form in php o html per raccolta mail PHP 4
A da dove incominciare per fare vari form PHP 2
M Problema con form per accesso area riservata ai soci PHP 2
P Form per ricerca multipla in MYsql PHP 2
A problema con un semplice form per un loggin in php PHP 2
M Sicurezza dati form per insert e select in database PHP 11
C Aiuto per form PHP 5
A Aiuto per form email con allegato PHP 4
YellowMan Form mail per WordPress in italiano WordPress 2
P Mercatino Form annunci per regione Classic ASP 8
A Un input di tipo button deve per forza essere contenuto in un Form ?? HTML e CSS 6
R Altri controlii per windows form .NET Framework 2
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
G Inserire un campo mysql in un select per form PHP 3

Discussioni simili