[alg/php]formulier dubbel gebruiken voor edit en new

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Ik ben op dit moment bezig met een webapp om wat gegevens op een site te beheren. Nu ben ik begonnen met een basisopzetje, database ontwerpen e.d. Nu wil ik omgaan met de formulieren om de gegevens toe te voegen en aan te passen.

Het formulier wat ik hier voor nodig heb ik eigenlijk precies hetzelfde, evenals het achterliggende stukje code om de gegevens uit de database te halen. Ik heb dus bedacht om een nieuw record in te voeren en mysql_insert_id door te sturen naar de editpagina. De gebruiker ziet dan automatisch een leeg form.

Het probleem wat ik daardoor krijg is dat ik een leeg record heb als de gebruiker naar een andere pagina gaat om ze eigenlijk toch geen nieuwe toe wilde voegen. Zijn er misschien betere manieren om met forms om te gaan of is het gewoon het handigste om een cronjobje te laten lopen die alle lege ongebruikte records verwijderd? Waarbij je dus problemen gaat krijgen met datum velden en standaardwaarden.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik snap niet helemaal waar je heen wil? Is je probleem nou dat je steeds de gegevens uit een leeg form in je database invoert? Dan kun je toch simpelweg checken OF er iets ingevoerd is? Als het dit niet is ben je (voor mij iig :P) niet duidelijk genoeg.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Cronjob om het vuile werk op te lossen is natuurlijk niet zo'n nette oplossing :). Naast dat er tijdelijk records zonder betekenis bestaan kun je ook geen verplichte velden meer hebben. Een leeg record moet immers eerst leeg zijn.

Ikzelf gebruik voor het inserten en editen vaak hetzelfde formulier. Wat er vervolgens met de gegevens moet gebeuren bepaal ik adhv een hidden field met daarin de action (insert of update) of door de id (id=0 dan insert, anders update). Bij het genereren van het formulier kijk ik ook naar de actie en afhankelijk daarvan kan ik bijvoorbeeld niet te veranderen velden als tekst neerzetten ipv een textfield en de tekst op de knop aanpassen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Ik gebruik deze constructie altijd. Ik heb een edit-formulier dat ik aanroep met een ID. Als ik geen id opgeef doet ie ipv een update een insert. Ik ga dit soort formulieren niet 2x maken, mij te veel werk :)

Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
Ik heb ook voor insert en update acties hetzelfde formulier. Aan de hand van mode=insert / mode=update wordt na submit de goede query gebruikt.

De achterliggende class heeft altijd alle attributen geinitialiseerd, waardoor mijn form gewoon op deze manier vars erin heeft staan:
code:
1
<input type="text" name="imdb" value="$this->imdb" size="80" />


Bij een insert wordt $this->imdb dus vervangen door niets zeg maar.

Dit werkt voor mij prima (-: