Toon posts:

[php] array doorgeven naar andere pagina

Pagina: 1
Acties:
  • 150 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb me een ongeluk gezocht (en gesearched) naar oplossingen voor dit probleem, maar ben nog niet echt wijzer geworden.

Het volgende is het geval:
Ik heb een pagina die zelf een array bouwt van bestandsnamen uit een directory.
Als ik op een link op die pagina klik moet die array ook doorgegeven worden.

Aangezien die array behoorlijk groot kan zijn (100+ bestandsnamen), is het niet echt een optie om die array in een string om te zetten en die mee te sturen (wordt de url achtelijk lang en lelijk).

Een oplossing die ik net zelf bedacht had werkt wel maar is niet echt elegant.
Ik laat nu de pagina de array in een file schrijven en de andere pagina die file uitlezen. :P

Nu heb ik begrepen dat dit allemaal wat mooier kan dmv een post of get commando in een form.
Maar ik weet niet helemaal hoe ik dat voor elkaar moet krijgen, en ik wil al helemaal geen "submit" buttons op m'n pagina. Het moet dus werken als je op een normale link klikt.

Iemand een idee?

Verwijderd

Gebruik sessies :)
Dan sla je die array gewoon op in de session.

Verwijderd

Hoewel sessies een veel mooiere oplossing is hoef je niet persee een submit button te gebruiken als je van forms gebruik wilt maken. Ook met een gewone link kun je forms submitten.
Maar ik zou maar gewoon sessies gaan gebruiken :)

Verwijderd

Het zou zo kunnen:

Eerst twee opmerkingen:

ik doe niet aan php, maar onderstaande code
moet voor jou om te zetten zijn naar php.
Belangrijk is dat de form klaar is voordat er gesubmit wordt,
dus mischien moet je de form VOOR de body zetten. (niet netjes)

'// in php maak een loop
'// alle array elemtenten, MET scheidings teken in een string zetten
for x=1 to ubound(array)
onwijs_lange_string=onwijs_lange_string&array(x)&"|"
x=x+1
next


<body onload="javascript:submit(document.doorvoeren);">
<form action="andere_pagina.php" name="formdata" method="post">
<input type="hidden" name="array_data" value="onwijs_lange_string">
</form>
</body>

andere_pagina.php

split de onwijs_lange_string op het scheidingsteken
Array=Split(onwijs_lange_string,"|")

In php zal je ongetwijfeld een split commando
hebben, ander zelf maken met een loop.

Excuses voor het gebrek aan kennis van php

Ronald

Verwijderd

Ehh ja een sessie ken ook, maar dan heb ik al die ellende voor niets lopen typen??

Verwijderd

Topicstarter
Verwijderd schreef op 19 oktober 2002 @ 02:30:
Hoewel sessies een veel mooiere oplossing is hoef je niet persee een submit button te gebruiken als je van forms gebruik wilt maken. Ook met een gewone link kun je forms submitten.
Maar ik zou maar gewoon sessies gaan gebruiken :)
Dat is waar ook ja 8)7 Dan ga ik het wel oplossen met forms, want van sessies weet echt helemaal niets.

Verwijderd

Ik weet niet maar PHP lijkt me toch makkelijker (en kleiner): >:)

Opslaan in PHP:
- session_start();
- session_register("ArrayName");

Opvragen in PHP:
- session_start();


en de variable ArrayName heb je weer tot je beschikking ;)

Verwijderd

Topicstarter
Verwijderd schreef op 19 oktober 2002 @ 02:33:
Het zou zo kunnen:

[knip]

Ronald
Top! Zoiets zal ik dan maken (kan alleen niet nu, ben aan het werk als nachtportier, dus zal pas morgenmiddag kunnen proberen).

Om een array om te zetten naar een string en die string vervolgens weer in een array om te zetten heeft php trouwens erg makkelijke functies (implode en explode).

Bedankt en ik zal morgen laten weten of het gelukt is.

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
serialize is hier voor bedoeld.

Verwijderd

Topicstarter
Verwijderd schreef op 19 oktober 2002 @ 02:44:
Ik weet niet maar PHP lijkt me toch makkelijker (en kleiner): >:)

Opslaan in PHP:
- session_start();
- session_register("ArrayName");

Opvragen in PHP:
- session_start();


en de variable ArrayName heb je weer tot je beschikking ;)
Hmm... Als het zo makkelijk is, kan ik het natuurlijk wel. En zou het dom zijn iets anders te maken. (sorry ronald ;) ). Ik ga het morgen proberen.

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 23-08 13:31

Tjark

DON'T PANIC

serialize?
waarom?
tis gewoon een arraytje wat ie heeft, geen object.

MantaManta: ga niet voor Ronalds methode. Doe jezelf een HELE grote lol: lees ff wat over sessions en d'r gaat een hele wereld voor je open. sessions zijn niet moeilijk! (zie Wiseman's post)

-edit: hehe, ik was iets te snel :)

*insert signature here


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 11:11
_js_ schreef op 19 oktober 2002 @ 02:50:
serialize is hier voor bedoeld.
Dat het toch nog 10 posts duurt voordat het juiste antwoord is gegeven... :{
Maar iig 1 iemand die het weet. :)

Verwijderd

Topicstarter
met die sessions krijg ik de volgende foutmelding: :/

Warning: Cannot send session cookie - headers already sent by (filename, regelnummer waarin session_start(); staat)
Warning: Cannot send session cache limiter - headers already sent (filename, regelnummer waarin session_start(); staat)

hoe kan dat? :?
Heb dit gedaan in die pagina:
<?php
session_start();
session_register("testarray");
?>

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 11:18

Knutselsmurf

LED's make things better

Sessionstart moet als allereerste commando worden uitgevoerd. Dus als je die helemaal bovenaan je script zet, zou het wel moeten werken.

- This line is intentionally left blank -


Verwijderd

Topicstarter
Ah, kijk, nu werkt het!!!

Hij maakt alleen wel een fout:
De array wordt steeds groter. 8)7 Bij elke keer dat de eerste pagina opgeroepen wordt, schijft hij de array opnieuw in de array.
Dus bij een categorie van 14 plaatjes krijg ik eerst een array van 14, daarna van 28, daarna van 42, daarna van 56, enz. 8)7

Moet ik die session dan resetten of stoppen of deleten? :?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Verwijderd schreef op 19 oktober 2002 @ 15:20:
De array wordt steeds groter. 8)7 Bij elke keer dat de eerste pagina opgeroepen wordt, schijft hij de array opnieuw in de array.
Dus bij een categorie van 14 plaatjes krijg ik eerst een array van 14, daarna van 28, daarna van 42, daarna van 56, enz. 8)7

Moet ik die session dan resetten of stoppen of deleten? :?
Dat hangt af van je code. Hoe bouw je die array? als je met relatieve indexen werkt, dan wordt ie inderdaad steeds groter

De session delete is hier denk ik niet wat he helemaal wilt, dat doe je pas als je klaar bent.

Localhost, sweet localhost


Verwijderd

Topicstarter
Ik heb het al gevonden. Ik had de array global gemaakt, dat was niet zo slim.

Dank voor alle hulp! (en sessions werken idd best fijn)
Pagina: 1