Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
passaggio di variabili e form
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
moonba
Eroe
Eroe


Registrato: 08/05/07 08:59
Messaggi: 46

MessaggioInviato: 11 Gen 2009 17:10    Oggetto: passaggio di variabili e form Rispondi citando

ciao a tutti avrei bisogno di un consiglio,per quanto riguarda una form.
ho una griglia di visualizzazione di una tabella angrafica di un db.
da questa griglia c'è un pulsante per l'inserimento dati anagrafici.fin qui tutto ok ,il rpoblema che nella form c'è un pulsante che se premuto visualizza una tabella libri in cui è possibile scegliere il codice libro rispettivo.
quindi l'inserimento ad esempio come la modifica permette di inserire i dati anagrafici e inserire il codice libro o manualmente o attraverso quel pulsante.
così ho inserito due pulsanti di submit che uno dovrebbe richiamare la insert e l'altro visualizzare la tabella libri passandogli i dati e riportando nella form i dati inseriti inizialmente.
il mio problema è che nella action della form o metto il file per la visualizzazione della tabella e oppure metto il file della insert.insomma non so gestirmi queste due azioni..voi come consigliate di agire?
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 11 Gen 2009 17:57    Oggetto: Rispondi citando

Sinceramente non mi è molto chiaro cosa fa la griglia e come è legata alla pagina per il codice del libro però per quanto riguarda il tuo problema sull'action:
1) o tramite javascript fai si che a seconda del pulsante premuto venga modificata l'action della form e poi fai il submit oppure
2) senza javascript, nell'action controlli quale sia il comando passato. Per esempio nella prima pagina metti due submit con lo stesso nome, "command" e in uno setti il value a "insert" e nell'altro "codice"; nell'action avrai una if che controlla il valore della var $_REQUEST['command'] e che agirà di conseguenza
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11586
Residenza: Tokelau

MessaggioInviato: 12 Gen 2009 15:10    Oggetto: Re: passaggio di variabili e form Rispondi citando

moonba ha scritto:
il mio problema è che nella action della form o metto il file per la visualizzazione della tabella e oppure metto il file della insert.insomma non so gestirmi queste due azioni..voi come consigliate di agire?


fai due form, ed eviti anche il javascript Smile
Top
Profilo Invia messaggio privato HomePage
moonba
Eroe
Eroe


Registrato: 08/05/07 08:59
Messaggi: 46

MessaggioInviato: 12 Gen 2009 17:16    Oggetto: dunque io ho risolto in questo modo : Rispondi citando

dalla griglia di visualizzazione vi è una form con il pulsante d'inserimento.
che richiama un file in cui avviene una prima verifica ,ovvero se il pulsante premuto è d'inserimento o di modifica dati anagrafici.
se il pulsante è d'inserimento,avviene un'altra verifica per cui se viene premuto il pulsante di selezione codice libro ,viene chiamato il file con la tabella relativa ai libri,viene selezionato il codice libro,quindi si ritorna alla form e viene richiamata la insert.
se invece non viene premuto il pulsante di selezione codice libro e quindi viene inserito manualmente ,avviene l'inset normale.
questo è il codice,per cui premuto il pulsante d'inserimento o di modifica viene richiamato questo script:
Codice:

<?php                       // il pulsante di inserimento e il pulsante di modifica richiamano tutti il file modificajoin
  $host = 'localhost';
  $user = 'root';
  $password='';
  $database = 'provephp';
  echo $_POST['select'];
  $codicesoggetto = $_REQUEST['codicesoggetto'];
  $cognome = $_REQUEST['cognome'];
  $nome = $_REQUEST['nome'];
  $datanascita=$_REQUEST['datanascita'];
  $citta = $_REQUEST['citta'];
  $codice_libro_posseduto = $_REQUEST['codice_libro_posseduto'];
  $db = mysql_connect($host,$user,$password) or die("non si connette al server");// mi connetto al server
  mysql_select_db($database, $db) or die("non si connette al database");// mi connetto al database
  $query = "SELECT * FROM soggetti WHERE codicesoggetto = $codicesoggetto";
  $risultato = mysql_query($query,$db);
  $affectedrows = mysql_affected_rows($db);
  if($_GET['modifica'])// se viene  il pulsante d'inserimento si entra nella form la cui action rimanda alla tabella dole tutti i paramteri
   {                   //modalità modifica
     
     echo "<form action=\"verificasubmit.php\"  method=\"post\">";
      echo "<p class=\"inputesto\">Codicesoggetto</p> <input type=\"text\" name=\"codicesoggetto\" class=\"input\" value=\"$codicesoggetto\"><br>";
      echo "<p class=\"inputesto\">Cognome</p>  <input type=\"text\" name=\"cognome\"  class=\"input\" value=\"$cognome\"><br>";
     echo " <p class=\"inputesto\">Nome</p>  <input type=\"text\" name=\"nome\"  class=\"input\"  value=\"$nome\" ><br>";
      echo "<p class=\"inputesto\">Datanascita</p> <input type=\"text\" name=\"datanascita\" class=\"input\" value=\"$datanascita\" ><br>";
      echo "<p class=\"inputesto\">Citta</p>  <input type=\"text\" name=\"citta\" class=\"input\" value=\"$citta\" ><br>";
      echo "<p class=\"inputesto\">Codice_libro_posseduto</p>  <input type=\"text\" name=\"codice_libro_posseduto\" class=\"input\" value=\"$codice_libro_posseduto\" ></a><input type=\"submit\" name=\"selectmodifica\" value=\"seleziona\" ><br>";
       echo "<p class=\"inputesto\">Immagine </p><input type=\"file\"  class=\"input\" name=\"file_inviato\"><br> ";
       echo "<input type=\"submit\" name=\"okmod\"  class=\"input\" value=\"ok\">";
      echo "</form>"; 
}

 
 if($_POST['form'])  // se viene premuto il pulsante di inserimento entra in questa form quindi i parametri vengono passati alla verifica della submit
  {                  //modalità inserimento
     
     echo "<form action=\"verificasubmit.php\"  method=\"post\">";
      echo "<p class=\"inputesto\">Codicesoggetto</p> <input type=\"text\" name=\"codicesoggetto\" class=\"input\" value=\"$codicesoggetto\"><br>";
      echo "<p class=\"inputesto\">Cognome </p> <input type=\"text\" name=\"cognome\" class=\"input\" value=\"$cognome\"><br>";
     echo "<p class=\"inputesto\">Nome </p> <input type=\"text\" name=\"nome\" class=\"input\" value=\"$nome\" ><br>";
      echo "<p class=\"inputesto\">Datanascita </p> <input type=\"text\" name=\"datanascita\" class=\"input\" value=\"$datanascita\" ><br>";
      echo "<p class=\"inputesto\">Citta </p> <input type=\"text\" name=\"citta\" class=\"input\" value=\"$citta\" ><br>";
      echo "<p class=\"inputesto\">Codice_libro_posseduto</p>  <input type=\"text\" name=\"codice_libro_posseduto\" class=\"input\" value=\"$codice_libro_posseduto\" ></a><input type=\"submit\" name=\"selectform\" value=\"seleziona\" ><br>";
       echo "<p class=\"inputesto\">Immagine</p> <input type=\"file\" class=\"input\" name=\"file_inviato\"><br> ";
       echo "<input type=\"submit\" name=\"ok\" class=\"input\" value=\"ok\">";
      echo "</form>"; 
}
  if($_GET['selectmodifica'])
  {
     
     echo "<form action=\"modificarerecorddbjoin.php\" method=\"post\">";
      echo "<p class=\"inputesto\">Codicesoggetto</p> <input type=\"text\" name=\"codicesoggetto\" class=\"input\" value=\"$codicesoggetto\"><br>";
      echo "<p class=\"inputesto\">Cognome</p>  <input type=\"text\" name=\"cognome\" class=\"input\" value=\"$cognome\"><br>";
     echo "<p class=\"inputesto\">Nome </p> <input type=\"text\" name=\"nome\" class=\"input\" value=\"$nome\" ><br>";
      echo "<p class=\"inputesto\">Datanascita</p>  <input type=\"text\" name=\"datanascita\" class=\"input\" value=\"$datanascita\" ><br>";
      echo "<p class=\"inputesto\">Citta </p> <input type=\"text\" name=\"citta\" class=\"input\" value=\"$citta\" ><br>";
      echo "<p class=\"inputesto\">Codice_libro_posseduto </p> <input type=\"text\" name=\"codice_libro_posseduto\" class=\"input\" value=\"$codice_libro_posseduto\" ></a><input type=\"submit\" name=\"select\" value=\"seleziona\" ><br>";
       echo "<p class=\"inputesto\">Immagine </p><input type=\"file\" name=\"file_inviato\" class=\"input\"><br> ";
       echo "<input type=\"submit\" name=\"ok\" class=\"input\" value=\"ok\">";
      echo "</form>"; 
}
  if($_GET['select'])
  {
     
     echo "<form action=\"inserirecorddb.php\"  method=\"post\">";
      echo "<p class=\"inputesto\">Codicesoggetto </p> <input type=\"text\" name=\"codicesoggetto\" class=\"input\" value=\"$codicesoggetto\"><br>";
      echo "<p class=\"inputesto\">Cognome</p>  <input type=\"text\" name=\"cognome\" class=\"input\" value=\"$cognome\"><br>";
     echo "<p class=\"inputesto\">Nome </p> <input type=\"text\" name=\"nome\" class=\"input\" value=\"$nome\" ><br>";
      echo "<p class=\"inputesto\">Datanascita </p> <input type=\"text\" name=\"datanascita\" class=\"input\" value=\"$datanascita\" ><br>";
      echo "<p class=\"inputesto\">Citta </p>  <input type=\"text\" name=\"citta\" class=\"input\" value=\"$citta\" ><br>";
      echo "<p class=\"inputesto\">Codice_libro_posseduto </p> <input type=\"text\" name=\"codice_libro_posseduto\" class=\"input\" value=\"$codice_libro_posseduto\" ></a><input type=\"submit\" name=\"select\" value=\"seleziona\" ><br>";
       echo "<p class=\"inputesto\">Immagine </p> <input type=\"file\" name=\"file_inviato\" class=\"input\"><br> ";
       echo "<input type=\"submit\" name=\"ok\" class=\"input\" value=\"ok\">";
      echo "</form>"; 
}

 
//mysql_close($db);
?>
 <div id="foter"></div>
 </div> 
</body>
</html>


questo invece è il codice di verifica della submit per cui se viene selezionato il pulsante di selezione codice si ha:
Codice:

<html>
<head>
<link rel="stylesheet" type="text/css" media="screen" href="verificasubmit.css" />
</head>
<body>
     <div id="container">
      <div id="header"> <h1>Gestione anagrafica</h1>  </div>


<?php
 $codicesoggetto= $_REQUEST['codicesoggetto'];
 // echo $codicesoggetto;
  $cognome = $_REQUEST['cognome'];
//  echo $cognome;
  $nome = $_REQUEST['nome'];
// echo $nome;
  $datanascita = $_REQUEST['datanascita'];
  $citta = $_REQUEST['citta'];
  $codice_libro_posseduto = $_REQUEST['codice_libro_posseduto'];
//  echo $codice_libro_posseduto;
  if ( $_POST['selectform'] )
    { 
       echo "<form action=\"tabella.php\" method=\"post\">";
      echo "<p class=\"inputesto\">codicesoggetto</p> <input type=\"text\" name=\"codicesoggetto\" class=\"input\" value=\"$codicesoggetto\"><br>";
      echo "<p class=\"inputesto\">cognome </p>  <input type=\"text\" name=\"cognome\" class=\"input\" value=\"$cognome\"><br>";
     echo "<p class=\"inputesto\">nome </p> <input type=\"text\" name=\"nome\" class=\"input\" value=\"$nome\" ><br>";
      echo "<p class=\"inputesto\">datanascita </p> <input type=\"text\" name=\"datanascita\" class=\"input\" value=\"$datanascita\" ><br>";
      echo "<p class=\"inputesto\">citta </p> <input type=\"text\" name=\"citta\" class=\"input\" value=\"$citta\" ><br>";
      echo "<p class=\"inputesto\">codice_libro_posseduto </p> <input type=\"text\" name=\"codice_libro_posseduto\" class=\"input\" value=\"$codice_libro_posseduto\" ></a><input type=\"submit\" name=\"select\" value=\"seleziona\" ><br>";
       echo "<p class=\"inputesto\">immagine </p><input type=\"file\" name=\"file_inviato\" class=\"input\"><br> ";
       echo "<input type=\"submit\" name=\"ok\" class=\"input\" value=\"ok\">";
      echo "</form>";                                       
     
}
 
elseif ( $_POST['ok'] )
{


      echo "<form action=\"inserirecorddb.php\" method=\"post\">";
      echo "<p class=\"inputesto\">codicesoggetto </p> <input type=\"text\" name=\"codicesoggetto\"class=\"input\" value=\"$codicesoggetto\"><br>";
     echo "<p class=\"inputesto\">cognome </p> <input type=\"text\" name=\"cognome\"  class=\"input\" value=\"$cognome\"><br>";
     echo "<p class=\"inputesto\">nome </p> <input type=\"text\" name=\"nome\" class=\"input\" value=\"$nome\" ><br>";
      echo "<p class=\"inputesto\">datanascita </p> <input type=\"text\" name=\"datanascita\"class=\"input\" value=\"$datanascita\" ><br>";
      echo "<p class=\"inputesto\">citta </p>  <input type=\"text\" name=\"citta\" class=\"input\" value=\"$citta\" ><br>";
      echo "<p class=\"inputesto\">codice_libro_posseduto </p> <input type=\"text\" name=\"codice_libro_posseduto\"class=\"input\" value=\"$codice_libro_posseduto\" ></a><input type=\"submit\" name=\"select\" value=\"seleziona\" ><br>";
       echo "<p class=\"inputesto\">immagine </p> <input type=\"file\" name=\"file_inviato\"class=\"input\"><br> ";
       echo "<input type=\"submit\" name=\"ok\" class=\"input\" value=\"ok\">";
      echo "</form>";

   
    }
    if ( $_POST['selectmodifica'] )
    { 
       echo "<form action=\"tabella.php\" method=\"post\">";
      echo "<p class=\"inputesto\">codicesoggetto </p><input type=\"text\" name=\"codicesoggetto\" class=\"input\" value=\"$codicesoggetto\"><br>";
      echo "<p class=\"inputesto\">cognome </p> <input type=\"text\" name=\"cognome\" class=\"input\" value=\"$cognome\"><br>";
     echo "<p class=\"inputesto\">nome </p> <input type=\"text\" name=\"nome\" class=\"input\" value=\"$nome\" ><br>";
      echo "<p class=\"inputesto\">datanascita </p> <input type=\"text\" name=\"datanascita\" class=\"input\" value=\"$datanascita\" ><br>";
      echo "<p class=\"inputesto\">citta </p> <input type=\"text\" name=\"citta\" class=\"input\" value=\"$citta\" ><br>";
      echo "<p class=\"inputesto\">codice_libro_posseduto </p> <input type=\"text\" name=\"codice_libro_posseduto\" class=\"input\" value=\"$codice_libro_posseduto\" ></a><input type=\"submit\" name=\"selectmodifica\" value=\"seleziona\" ><br>";
       echo "<p class=\"inputesto\">immagine </p> <input type=\"file\" name=\"file_inviato\" class=\"input\"><br> ";
       echo "<input type=\"submit\" name=\"ok\" class=\"input\" value=\"ok\">";
      echo "</form>";                                       
     
}
elseif ( $_POST['okmod'] )
{


      echo "<form action=\"modificarerecorddbjoin.php\" method=\"post\">";
      echo "<p class=\"inputesto\">codicesoggetto </p> <input type=\"text\" name=\"codicesoggetto\" class=\"input\" value=\"$codicesoggetto\"><br>";
     echo "<p class=\"inputesto\">cognome </p>  <input type=\"text\" name=\"cognome\" class=\"input\" value=\"$cognome\"><br>";
     echo "<p class=\"inputesto\">nome </p>  <input type=\"text\" name=\"nome\" class=\"input\" value=\"$nome\" ><br>";
      echo "<p class=\"inputesto\">datanascita </p> <input type=\"text\" name=\"datanascita\" class=\"input\" value=\"$datanascita\" ><br>";
      echo "<p class=\"inputesto\">citta </p> <input type=\"text\" name=\"citta\" class=\"input\" value=\"$citta\" ><br>";
      echo "<p class=\"inputesto\">codice_libro_posseduto </p> <input type=\"text\" name=\"codice_libro_posseduto\" class=\"input\" value=\"$codice_libro_posseduto\" ></a><input type=\"submit\" name=\"select\" value=\"seleziona\" ><br>";
       echo "<p class=\"inputesto\">immagine </p> <input type=\"file\" name=\"file_inviato\" class=\"input\"><br> ";
       echo "<input type=\"submit\" name=\"ok\" class=\"input\" value=\"ok\">";
      echo "</form>";

   
    }
?>
<div id="foter"></div>
 </div> 
</body>
</html>



il tutto funziona ma a livello di codice penso di fare un giro un pò troppo lungho e di poterlo ottimizzare di gran lunga.
ringrazio per l'attenzione
Top
Profilo Invia messaggio privato
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 12 Gen 2009 21:02    Oggetto: Re: dunque io ho risolto in questo modo : Rispondi citando

moonba ha scritto:

il tutto funziona ma a livello di codice penso di fare un giro un pò troppo lungho e di poterlo ottimizzare di gran lunga.
ringrazio per l'attenzione


Non sempre del codice corto è "ottimo".Adesso sto dal portatile e non ho Komodo Edit (lo sto scaricando) appena finito vedrò il codice.
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 13 Gen 2009 01:05    Oggetto: Rispondi citando

<DISCORSO_SOPRA_I_MASSIMI_SISTEMI>
moonba ha ragione.
Purtroppo la programmazione web nella maggior parte dei casi a fatta a livello "artigianale".
La gente ragiona ancora in modalità: "è un sito dinamico mica un programma" e tutto va a ramengo.
Non ti dico di farlo ora ma per te non è ipotizzabile passare ad un framerwork?
Symfony, cakePHP e altri, sono potentissimi e ti automatizzano un sacco di cose.
Nascono per sviluppare sotto il modello MVC e ti costringono a seguirlo in modo da avere codice più leggibile, progetto ordinato e potrai scrivere codice riutilizzabile con meno fatica.
Io non riesco in ufficio a far fare il porting, però se il tuo lavoro è all'inizio prendi in considerazione questa ipotesi.
Anche mdweb ha ragione: non è che meno codice vuol dire meglio, sicuramente però questo implica meno bugs.
</DISCORSO_SOPRA_I_MASSIMI_SISTEMI>
buona notte
Top
Profilo Invia messaggio privato
moonba
Eroe
Eroe


Registrato: 08/05/07 08:59
Messaggi: 46

MessaggioInviato: 13 Gen 2009 09:13    Oggetto: oggi dovrei avere un pò di tempo per riguardarmi il tutto Rispondi citando

per quanto riguarda utilizzo di framework,ti dirò che sono nella fase in cui faccio fatica ad utilizzare il debug php..nel senso che non ho ancora acquisito la mentalità di utilizzarlo.
per quanto riguarda il programma qui sopra,sono sicuro possa essere di gran lunga ridotto il codice.
se ci sono proposte ringrazio infinitamente.
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 17:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 13 Gen 2009 09:43    Oggetto: Rispondi citando

freemind ha scritto:
La gente ragiona ancora in modalità: "è un sito dinamico mica un programma" e tutto va a ramengo.
Differenza formale / filosofica / appunto sui massimi sistemi trai due concetti?

freemind ha scritto:
Nascono per sviluppare sotto il modello MVC
Cos'è?
Top
Profilo Invia messaggio privato
moonba
Eroe
Eroe


Registrato: 08/05/07 08:59
Messaggi: 46

MessaggioInviato: 13 Gen 2009 10:55    Oggetto: Rispondi citando

mi sapete spiegare il motivo per cui non riesco a passare attravero il link i valori inseriti nella form?
Codice:

if($_POST['form'])  // se viene premuto il pulsante di inserimento entra in questa form quindi i parametri vengono passati alla verifica della submit
  {
     
     echo "<form action=\"inserirecorddb.php\" method=\"post\">";
      echo "codicesoggetto <input type=\"text\" name=\"codicesoggetto\" value=\"$codicesoggetto\"><br>";
      echo "cognome  <input type=\"text\" name=\"cognome\" value=\"$cognome\"><br>";
     echo "nome  <input type=\"text\" name=\"nome\" value=\"$nome\" ><br>";
      echo "datanascita  <input type=\"text\" name=\"datanascita\" value=\"$datanascita\" ><br>";
      echo "citta  <input type=\"text\" name=\"citta\" value=\"$citta\" ><br>";
      echo "codice_libro_posseduto  <input type=\"text\" name=\"codice_libro_posseduto\" value=\"$codice_libro_posseduto\" ></a><br>";
      print"<a href=\"tabella.php?modifica=$modifica&codicesoggetto=89&cognome=$cognome&nome=$nome&datanascita=$datanascita&citta=$citta&codice_libro_posseduto=$codice_libro_posseduto\"><img class='icone' src='iconamodifica.gif' ></a><br>";
       echo "immagine <input type=\"file\" name=\"file_inviato\"><br> ";
        echo "<input type=\"submit\" name=\"seleziona\" value=\"seleziona\">";
       echo "<input type=\"submit\" name=\"ok\" value=\"ok\">";
     echo "</form>";


il link in questione è questo:
Codice:

 print"<a href=\"tabella.php?modifica=$modifica&codicesoggetto=89&cognome=$cognome&nome=$nome&datanascita=$datanascita&citta=$citta&codice_libro_posseduto=$codice_libro_posseduto\"><img class='icone' src='iconamodifica.gif' ></a><br>";


l'unico valore che viene passato al file tabella.php è codicesoggetto che ho valorizzato io ad 89 per un provarlo,tutti i restanti valori della form non vengono presi se inseriti...
Top
Profilo Invia messaggio privato
moonba
Eroe
Eroe


Registrato: 08/05/07 08:59
Messaggi: 46

MessaggioInviato: 13 Gen 2009 13:35    Oggetto: Rispondi citando

@ freemind
puoi spiegarmi un pò + chiaramente la seconda soluzione quella senza javascript?
Top
Profilo Invia messaggio privato
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 13 Gen 2009 19:31    Oggetto: Rispondi citando

freemind ha scritto:

Anche mdweb ha ragione: non è che meno codice vuol dire meglio, sicuramente però questo implica meno bugs.

Ok implica meno bugs però stiamo parlando di piccoli script php.
Se mi parli di grandi applicazione php sono d'accordo con te.
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 14 Gen 2009 23:24    Oggetto: Rispondi citando

@mdweb: ok, quello che dici è vero infatti il mio è un discorso accademico (o quasi). Il problema però è che anche quando le singole pagine sono piccoli script, può succedere che tutto il sistema nel suo complesso sia molto grande quindi sarebbe meglio anche in questi casi cercare di scrivere bene il codice.

@moonba:
- per quanto riguarda l'organizzazione del sorgente
Dopo che hai prelevato la request e settato la connessione al db nelle if tu ripeti in continuazione la creazione della form, potresti creare una funzione per ogni form e richiamare quella corretta all'occorrenza.
Sarebbe addirittura meglio se tu creassi una funzione che generi una form, passandole come parametri l'action, il method e la configurazione per gli input, non dovrebbe essere difficile l'ultima cosa perchè generando il layout tramite <p> mi pare di capire che hai un campo per ogni riga quindi non devi diventare matto a creare impaginazioni complesse.
Poi crei le varie funzioni per ogni form che usano la precedente e nelle varie if richiami quella corretta.
Lo stesso discorso vale nella pagina che verifica i dati.

- per quanto riguarda la request sul link
Boh!? A prima vista mi pare che non ci sia motivo per cui la querystring non debba esser valorizzata. Mi sorge un dubbio: dopo che la pagina è stata caricata, se apri il sorgente generato, le varie caselle di testo e tendine hanno il value settato? Ad esempio, l'html prodotto dalla riga:
Codice:

<?php
   echo "cognome  <input type=\"text\" name=\"cognome\" value=\"$cognome\"><br>";
?>

è corretto?
Probabilmente è una domanda stupida visto che se fosse così avresti problemi in tutto il progetto però non si sa mai!
Cambia qualche cosa modificando la riga in:
Codice:

<?php
   print "<a href=\"tabella.php?modifica=" . $modifica . "&codicesoggetto=89&cognome=" . $cognome . "&nome=". $nome . "&datanascita=" . $datanascita . "&citta=" . $citta . "&codice_libro_posseduto=" . $codice_libro_posseduto . "\"><img class='icone' src='iconamodifica.gif' ></a><br>";
?>

(per cortesia controlla che non abbia sbagliato a mettere le virgolette).
Se non cambia nulla proveremo a semplificare un po' il codice per capirci qualche cosa.

P.S.
Ho visto leggendo il sorgente che dopo
Codice:

<?php
   ...
   $query = "SELECT * FROM soggetti WHERE codicesoggetto = $codicesoggetto";
   $risultato = mysql_query($query,$db);
   ...
?>

usi "mysql_affected_rows" (per calcolare il numero di righe?); questa funzione va usata dopo una query di insert,delete,update o replace.
Dopo una select occorre "mysqli_num_rows(resource $result)" con $result il recordset ritornato.

@chemicalbit
- sui massimi sistemi
Dal mio punto di vista non esiste differenza a nessun livello tra un programma e un sito dinamico. Ovviamente se scrivo un sito completamente statico tranne che per un piccolo motore di news con dietro un db da 1 tabella gli scripts di visualizzazione e inserimento delle stesse non saranno una gran cosa e allora anche due righe buttate lì potrebbero andare bene; se però il mio sito in realtà è un portale con cui la gente interagisce, carica roba, tutte le pagine attingono dal db etc... allora le cose cambiano e quindi come i software stand-alone vanno progettati pure il sito deve essere progettato.
Purtroppo normalmente quando uno ti chiede di farti un sito dinamico e tu gli spari un prezzo lui ti risponde che suo nipote gli chiederebbe 100 euro e non si pone il problema del perchè alla fine suo nipote gli produrrà una vaccata (ovviamente ci sono anche i nipoti che sanno quello che fanno...).
Alla fine un eccessivo copia/incolla porta all'estremo quella che si chiama "entropia del codice" che in parole povere vuol dire che dopo un certo punto tu non riesci più a mettere mani nel tuo codice (figuriamoci in quello scritto da altri).

- sull' MVC
E' l'acronimo di Model View Controller ed indica un design pattern.
Un design pattern di fatto è una linea guida per sviluppare un software.
Ce ne sono di vario tipo e possono essere messi insieme.
In partiolare l'mvc divide l'applicazione in 3 livelli, il model (modello o business) che rappresenta di fatto i dati utili dell'applicativo; la view (vista) rappresenta l'interfaccia e il controller che orchestra i due livelli.
In soldoni l'utente interagisce con la view eseguendo dei comandi, click sui bottoni, selezioni etc... Questa a seconda di cosa fa l'utente richiama il controller dicendogli: "l'utente ha cliccato 'salva'" e il controller richiamerà il model in modo da modifcare i dati.
Ovviamente se per qualche motivo lo stato del model viene modificato e questo deve essere notificato alla vista, il controller si preoccuperà di farlo.
Esistono vari approcci per applicare l'mvc a seconda dei casi.
Questa separazione netta permette in caso di modifiche di non dover metter mano a tutto il progetto: se per qualche motivo viene cambiato il nome di un campo in una tabella del db senza l'mvc devi andare a cercare in tutto il sorgente dove usi quel nome e modificarlo. Con l'mvc invece andrai a modificare il nome nel model, magari risistemi i metodi (non l'ho detto ma si parla di programmazione ad oggetti se no è inpensabile) che lo usano e fine perchè se prima il controller doveva chiamare il metodo save del model e questo si arrangiava ad interfacciarsi al db, dopo la modifica il controller chiamerà sempre save senza neppure sapere che cosa fa.
I tre livelli conoscono solo lo stretto necessario degli altri e non si preoccupano di come lavorano.

Ovviamente dovremmo stare qui ore e ore a scrivere tantissime pagine sull'argomento che è molto interessante ed importante.

I framework di cui parlavo ti costringono a usare questo modello e ti aiutano creando loro i piani di astrazione adeguati in modo da avere sempre un'applicazione consistente.
Per esempio con symfony dopo che imposti il db lui ti crea delle classi base che rappresentano le tabelle del database. I metodi di queste sono scritti in modo da interfacciarsi ad un tipo di dbms quindi se lavori con mysql queste classi utilizzeranno certe funzioni e se usi mssql ne useranno altre.
Poi da queste vengono ereditate delle classi che il programmatore usa per interagire con il db.
Se ad un certo punto il cliente ti dice: "ok, ora il sito deve appoggirsi a postgree e non più a mysql" tu cambi il parametro che definisce il tipo di dbms, dici a symfony di ricreare il modello e lui riscrive solo le classi base. Quelle ereditate restano lì e tu non hai toccato nulla.
Senza symfony (o altri framework) dovresti farti a mano il lavoro di scrittura delle classi base e gestirti altre cose tra cui le factory e bla bla bla. Ovviamente però anche se lo si fa a mano senza aiuto alla fine si andrebbe a toccare solo una piccola parte del progetto senza distruggere le altre.
Senza framework questo lavoro è molto difficile e lungo per cui i piccoli studi informatici non "perdono tempo " per queste cose e programmano in modo più artigianale.

Bau!
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 31 Gen 2009 18:41    Oggetto: Rispondi

Ops, mi sono accorto solo ora che moonba aveva chieesto chiarimenti qualche post fa. Non so se sono ancora in tempo, comunque io di solito quando devo gestire un action che preve più submit faccio così:
nell'action controllo se è settata la variabile di comando che di solito indico con $command e poi in base al suo valore faccio qualche cosa:
Codice:

<?
   ...
   $command=(isset($_REQUEST['command']) ? $_REQUEST['command'] : null);
   
   if (!is_null($command))
   {
   // potrebbe esserci uno switch invece delle if
      if ($command=='Salva')
      {
         ...   
      }
      elseif ($command=='Cancella')
      {
         ...   
      }
   }
   ...
?>

Il controllo is_null mi serve per essere sicuro che il comando sia settato.
In pratica invece di settare un submit diverso per ogni possibile comando, ne uso solo che assume i volori in base al caso.
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi