[PHP] array in hidden veld

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Hallo, wat ik probeer te bereiken lijkt me vrij simpel..alleen ik vind dit een heele rare fout..en ik kom er niet uit

ik heb een array:

PHP:
1
2
3
<?php
   $accountinfo = array("1","2","3","4","5");
?>


Deze wil ik in 1 hidden veld meegeven:

HTML:
1
    <input type="hidden" value="<?=$accountinfo?>" name="accountinfotje">


Dmv van print_r($_POST);

krijg ik netjes te zien:

PHP:
1
2
3
4
5
Array
(
    [submit] => Bestel
    [accountinfotje] => Array
)


Als ik nu dmv van:

$_POST['accountinfotje'][0] de 1e waarde uit de array wil aanroepen krijg ik tot mijn verbazing de "A" terug van het woord Array..
1 levert "r" op..
2 levert "r" op..
3 levert "a" op..
4 levert "y" op..

Is het wel mogelijk om een array mee te geven aan 1 hidden veld?

ik hoop dat iemand mij kan helpen!!

bvd,

nick

  • Pyrus
  • Registratie: November 2001
  • Laatst online: 20-09 21:30

Pyrus

Hardknock life

Je kunt een array niet zomaar printen, die zul je eerst om moeten zetten naar een string. (implode(",", $jearray); bijvoorbeeld)
Bij het ophalen moet je hem dan weer splitsen met explode(",", $jepostwaarde);
Of elke array waarde in een los hidden veld zetten met een [] achter de naam, zodat php het ziet als een array.

@Hieronder: dat is idd nog een nettere oplossing. Zo voorkom je geklooi met de gegevens :)
Kan zijn dat het echter naar een andere server geschopt moet worden ofzo, zodat sessies niet bruikbaar zijn. Daar zegt TS niks over....

[ Voor 26% gewijzigd door Pyrus op 28-12-2006 11:39 ]

LinkedIn


  • IEF
  • Registratie: Februari 2004
  • Laatst online: 18-09 08:03

IEF

Why so serious?

Nee, dit kan niet.

Je geeft nu aan dat veld de string:

Array
(
[submit] => Bestel
[accountinfotje] => Array
)

mee.

Je krijgt dus geen array terug in je $_POST. Je krijgt gewoon letterlijk de bovenstaande string terug.


Ik zou er zelf voor kiezen met bijv. een sessie te werken.

$_SESSION['accountinfo']=$accountinfo;

Of je gebruikt inderdaad implode/explode. ^^

[ Voor 7% gewijzigd door IEF op 28-12-2006 11:38 ]


Verwijderd

Topicstarter
bedankt jongens, het is gelukt!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
In het kort: Nee, het is niet mogelijk om een array zo mee te geven aan een formulier veld. Waarom? Omdat een Array geen String is.

Probeer maar eens gewoon:

PHP:
1
echo array("h", "o", "i");


PHP print dan alleen 'array', omdat PHP gewoon geen array kan printen. Houd wel in de gaten, een array is bijna nooit alleen een reeks karakters - het kan ook data bevatten, MySQL records, objecten, etcetera. Deze kun je ook niet direct printen.

Een manier om wel een array te printen is met behulp van de Implode functie:

PHP:
1
2
$array = array("h", "o", "i");
echo implode("", $array);  // resultaat: "hoi"


Het eerste argument van de Implode functie is het karakter (de karakters) die je tussen de array elementen wilt hebben, bijvoorbeeld een komma, spatie, of zoals in het voorbeeld gewoon niks. Het tweede argument is de array die je imploderen wilt.

Ik ga maar niet vragen wat je precies probeert te bereiken, maar hier moet je denk ik wel weer wat verder mee kunnen komen.

l'edit: Grr @ snellere posters :+.

Verwijderd

Topicstarter
Ik kom nu zeker verder, dit is enige wat k wou weten..iig bedankt allemaal voor het reageren
Pagina: 1