De volgende stap is het opslaan van de gegevens. Deze gegevens bestaan uit een aantal onderdelen.
1. de value (geen probleem).
2. een parent en een option ID (wel een probleem).
Deze Par_ID en Opt_ID stuur ik nl mee met het name attribuut van het input veld.
Als ik op de normale (bij mij bekende manier) een formulier verwerk, kom ik er niet uit.
Ik neem gewoon aan dat je in die tabel met opties toch ook wel minimaal één kolom met de id hebt? In dat geval hoef je alleen de ID door te geven. Aan de hand daarvan kun je gewoon de rest van de info ophalen (indien nodig).
Nou, ik heb niet het hele verhaal verteld.
Ik schrijf de informatie weg in verschillende tabellen die later als filter voor het tonen van opties gaan werken.
Ik moet i.i.g. uit een input veld naast de value (en dat kan een reeds gedefinieerde waarde zijn, maar ook iets wat je invult) ook de Par_ID en de Opt_ID wegschrijven samen met een Product_ID (ik ben namenlijk aan een Product opties aan het toevoegen).
Het wegschrijven gebeurd in een drietal tabellen te weten:
- Product
- HuidigeOpties
- HuidigeAttributen
In elke tabel schrijf het Product_ID en vervolgens de optie-parent, de optie, het optie-attribuut en de meegegeven optiewaarde.
Je kunt ze beter in een hidden field stoppen als value. Dan weet je tenminste van tevoren de name. Na verzenden kun je dan met:
<?php
$ids = explode (':', $_POST['name_van_het_hidden_field']);
?>
De waarden ophalen.
Er is geen directe manier om het name attribuut als waarde uit te lezen
dus het stukje ['name_van_het_hidden_field'] tussen de rechte haken?
het punt is n.l. ook dat de input velden en hun namen dynamisch worden opgebouwd en er nogal wat variaties zijn. Per product is de inhoud van het formulier voor een groot deel totaal verschillend.
Maar dat is weer een ander probleem :-)
Deze methode geeft mij de mogelijkheid elk key/value paar afzonderlijk als record weg te schrijven in een tabel als HuidigeAttributen.
Dat geeft allerlei voordelen.
De opties die ik aan een product hang zijn daarmee volledig variabelbaar zonder dat ik ze van te voren vast hoef te leggen in de wegschrijftabel.
Daarom is voor mij wel van belang dat ik de optie_id's en optie_values stop in het name/value pair van het input field.