Function() som afgør om output skal være $_POST eller $row
Hejsa. Jeg har siddet og bakset lidt med en funktion som jeg ikke kan få til at makke ret. Det går ud på, at jeg i min database har nogle oplysninger, som kan opdateres vha. en form.Jeg tjekker ved submit om alle felter er udfyldt, og om teksten i et bestemt textarea er lang nok osv. Det funker også fint nok, men her er udfordringen så:
Når der ingen oplysninger er i databasen (dvs. når recorden skal oprettes), vil jeg have at selvom der bliver vist fejl ved tomme felter osv., skal der der var indtastet i felterne, blive vist efter submit. Det klarer jeg med følgende:
<input type="text" name="feltnavn" value="<?php echo $_POST['feltnavn']; ?>" />
Hvis recorden findes i forvejen, og skal redigeres, laver jeg samme nummer med tekstfelterne, bare med $row['feltnavn']; i stedet for $_POST['feltnavn'];. Her opstår problemet så... Hvis der ved submit er en fejl i bare ét af de påkrævede felter, og hvis man har lavet ændringer i flere felter, vil hele molevitten blive erstattet af indholdet fra databasen ($row) i stedet for det man lige har skrevet ($_POST), så man er nødt til både at rette feltet der fejler, og alle de andre som ellers er okay.
Kan man på en eller anden måde lave en funktion, som undersøger om der er trykket submit, og ud fra det afgør om value i et teksfelt skal være $_POST['felt'] eller $row['felt'], således at man ikke skal redigere flere felter hvis bare ét fejler?
Jeg kunne forestille mig noget i stil med dette (og tag jer ikke af eventuelle fejl, det er bare en skitse):
Funktionen
function prefill($value) {
if (isset($_POST['submit'])) { echo "$_POST['$value']"; } else { echo "$row['$value']"; }
Kaldet til funktionen i formen
<input type="text" name="feltnavn" value="<?php prefill('feltnavn'); ?>" />
Så vidt jeg har forstået kan man ikke umiddebart bruge $_POST og $_GET i funktioner, idet de er globals, men kan det klares på en anden smart måde mon?
