Hoe kan ik de elementen van een Associative Array in PHP "posten"?
Door
Steve Bonoo
op 15-10-2023 14:57
gewijzigd op 15-10-2023 16:29
4.850 views
Beste allemaal,
Wie zou mij kunnen helpen met mijn programma? Ik heb een zoekmachine gebouwd en heb ik hiervoor een associative array gebruikt en dat werkt prima (producten.php). De zoektermen heb ik vastgelegd in $producten["tags"], zie het programma hieronder wat ik heb geschreven.
Echter, wanneer ik "Aantal" invul en op de knop "Koop nu" klik krijg ik deze foutmelding in het bestand "factuur.php": Notice: Undefined variable: product.
Kortom: het lukt mij niet om de varaiabelen c.q. de elementen te posten van producten.php naar factuur.php. Hieronder de codes van beide bestanden.
In je array_push moet je als tweede argument een element gebruiken en geen array.
?Onbekende gebruiker
16-10-2023 13:09
Normaal gesproken post je die informatie niet (telkens opnieuw), maar bewaar je dat in $_SESSION.
Als je het toch wilt posten is een snelle manier om het hele array in 1 variabele stoppen via utf8_encode(), en achteraf decoderen met utf8_decode().
Als je het toch wilt posten en het op de uitgebreide manier wilt doen, dan moet je voor elke index in de associatieve array een input maken met als name attribuut de index in van die array, met haakjes. Bijvoorbeeld:
Het is mij helaas niet gelukt wat jij had voorgesteld. De functie array_push had ik voor die zoekmachine gebruikt, maar nadat ik enkele aanpassingen deed, zoals je had voorgesteld om als tweede argument een element te gebruiken i.p.v. een array, werkte de zoekmachine niet meer en ook de rest van het programma.
Ad kwam met een voorstel om de global variabele $_SESSION te gebruiken en ga ik mij hierin verdiepen aangezien ik weinig met deze variabele heb gedaan.
[size=xsmall]Toevoeging op 16/10/2023 16:25:47:[/size]
Beste Ad,
Dank voor je reactie. Ik ga met jouw optie aan de slag en hoop ik dat het zal lukken.
[size=xsmall]Toevoeging op 17/10/2023 09:14:53:[/size]
Hallo Ad,
Ik heb het e.e.a. aangepast, zoals je had voorgesteld, met $_SESSION (zie bestanden hieronder). Echter, wanneer ik "aantal" invul voor bijvoorbeeld alleen "Zak appels" dan worden ook de andere producten berekend, terwijl ik geen "aantal" voor die producten heb opgegeven.
En wat ik ook zie is dat wanneer ik bijvoorbeeld "if (($_SESSION['Producten'] = ["Zak appel"])&& (!empty($aantal)))" invul en ik er bijvoorbeeld "if (($_SESSION['Producten'] = ["Zak appelXXXXXXXX"])&& (!empty($aantal)))" van maak het toch "goed" gaat en dat vind ik vreemd. Ik heb bijna van alles geprobeerd, maar het lukt mij niet.
Kortom: wat doe ik niet goed? Of ligt het aan mijn $_SESSION? VERKOOP.php
En wat ik ook zie is dat wanneer ik bijvoorbeeld "if (($_SESSION['Producten'] = ["Zak appel"])&& (!empty($aantal)))" invul en ik er bijvoorbeeld "if (($_SESSION['Producten'] = ["Zak appelXXXXXXXX"])&& (!empty($aantal)))" van maak het toch "goed" gaat en dat vind ik vreemd. Ik heb bijna van alles geprobeerd, maar het lukt mij niet.
In een if() gebruik je dubbel == in plaats van enkel =.
Ik ben het met jullie eens dat je bij een if-statement dubbele == moet gebruiken, maar doe ik dat dan krijg ik niets te zien op de pagina en alleen de kop <h1>FACTUUR</h1>.
Ik zie dat wanneer ik voor "Zak appels" kies, ik "Gouden ring" zie staan en dit klopt niet. En wanneer ik voor aantal 30 invul ik bij $tebetalen int(0) zie staan en had ik 60 verwacht( 30*2=60). Volgens mij klopt dit ook niet en ik zou niet weten waaraan het ligt.