Gå til innhold

Er form'en forandret?


Anbefalte innlegg

Skrevet

<form>
   NAVN: <INPUT type="text" name="navn" value="Trond">
   osv... 
  </form>

 

Hva er det enkletse måte å sjekke om verdiene er blir forandret på? Å hente ut data fra mysql tabelen og sammen ligne? skrive inn alle feltene på nytt i tabellen med en UPDATE selv om de ikke er forandret? legge med et input felt som hidden der verdien med den lagrede verdien å sjekke den mot det som den er nå?

Videoannonse
Annonse
Skrevet

Beste du gjør er nok og hente verdiene ut av databasen og sammenligne, for så å bygge opp sql spørringen din derifra.

 

Har selv opplevd at man får en mysql error hvis du prøver og oppdatere en rad med eksakt samme data som er der fra før.

Skrevet
Beste du gjør er nok og hente verdiene ut av databasen og sammenligne, for så å bygge opp sql spørringen din derifra.

 

Har selv opplevd at man får en mysql error hvis du prøver og oppdatere en rad med eksakt samme data som er der fra før.

5763371[/snapback]

 

ok, dette er det enkleste? som blir brukt minst prossesor tid på også?

Skrevet (endret)

Missforstod jeg helt nå, eller kan du bare sette:

$navn = $_POST['navn'];

if ($navn == Trond) {

echo"ERROR";

end;

}

else { osv...

 

EDIT: Hadde vist satt en ¤ istede for $

Endret av goggen90
Skrevet
Skjønner ikke helt jeg heller, men hvis det er riktig det goggen90 gjør så må du huske å quote Trond. "Trond"

5765610[/snapback]

 

JA, jeg liker best å være quotet :)

 

Neida, dere forsto ikke helt rett... tenk dere nå, dere henter ut informasjon fra en mysql tabel, 20 linjer. plassere dem i et skjema og sender det til brukeren.

 

Brukeren forandrer på noen felt, eller ikke, hvem vet. også trykker han på "submit" knappen og du får tilbake en haug med variabler med ting som skal inn i mysql tabelen igjen.. men er alle feltene oppdatert ? isåfall hvordan vil du sjekke om de er oppdatert ? hente ut informasjon fra databasen og sammenligne? eller vil du sende med en "hidden" med informasjom om hva som var i skjemat før det ble forandret.. slik

<INPUT type="text" name="navn" value="Trond">

<INPUT type="hidden" name="hidden_navn" value="Trond">

 

for så og sjkke det når de kommer tilbake:

foreach ( $_POST as $felt => $streng){
  if(strpos( $felt, "hidden") === false)
     if($_POST[$felt] != $_POST["hidden_".$felt])
         $forandret[$felt] = $_POST[$felt];
   }

 

Da vil du i teorien få ut en array ( $forandret ) med alle feltene som er forandret siden du sendte ut skjemaet..

 

Finnes flere måte å gjør det på, men denne har jeg vel nå kommet til er den ekleste..

 

:)

Skrevet

Det greieste er vel uansett å bare sette UPDATE på alle felter når det skal inn i databasen igjen?

Altså

<input type=\"text\" name=\"navn\" value=".$rad['navn'].">
<input type=\"text\" name=\"alder\" value=".$rad['alder'].">

i formen og

$navn = $_POST['navn'];
$alder=$_POST['alder'];
$str = ("UPDATE tabell set navn='$navn', alder='$alder'.........

 

Eller misforsto jeg også nå?

Skrevet
Det greieste er vel uansett å bare sette UPDATE på alle felter når det skal inn i databasen igjen?

Altså

<input type=\"text\" name=\"navn\" value=".$rad['navn'].">
<input type=\"text\" name=\"alder\" value=".$rad['alder'].">

i formen og

$navn = $_POST['navn'];
$alder=$_POST['alder'];
$str = ("UPDATE tabell set navn='$navn', alder='$alder'.........

 

Eller misforsto jeg også nå?

5765998[/snapback]

 

Joda, men holder på med en prosjekt der det sakl være mulig å 'gå tilbake'. dvs se hvilke forandringer som er blitt gjort.

Skrevet (endret)
Aha, da skjønner jeg. Men du har altså funnet en løsning på problemet uansett?

5767378[/snapback]

 

Jeg hadde vel igrunn en løsning, lurte på hva tanker andre hadde om problemet. Ikke alltid jeg velger den ekleste løsningen, da er det greit å høre med andre hva de synes :)

 

EDIT: En fin måte å lære på

Endret av trondes
Skrevet

Eg liker å ha to felter, et hidden og en input. Deretter sjekker dette når brukeren har trykket på submit.

 

Ellers, dersom du ønsker å kunne se tilbake på endringer som er gjort, ville eg opprettet en ny tabell som inneholder alle endringene, sortert på dato. Den nyeste er da den som er reell.

Skrevet
Eg liker å ha to felter, et hidden og en input. Deretter sjekker dette når brukeren har trykket på submit.

 

Ellers, dersom du ønsker å kunne se tilbake på endringer som er gjort, ville eg opprettet en ny tabell som inneholder alle endringene, sortert på dato. Den nyeste er da den som er reell.

5767567[/snapback]

 

 

utfører du sjekkingen når brukeren trykker på submit? javascript ? hmm.. hadde kanskje ikke vært så dumt det heler.. felt som ikke var forandret ville da ikke blit sendt tilbake..

 

Har 2 tabeler ja, det er også muligheten til å krysse av feks forandringer som ble gjort sist uke, slik at den blir tilbake stilt..

 

Ser ut som det virker nå.

Skrevet

Nei, eg sjekker når de kommer til serveren igjen. Med mindre vi snakker om håndholdte/mobile enheter, da kan det være greit å gjøre slike små ting for å spare båndbredde.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...