[PHP/Ajax]Dynamische fieldnames in Ajax

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • LiquidSmoke
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:53
Vreemd probleem,

Met php lees ik een tekstbestandje naar een array, en bouw een klein formulier op.
Het formulier bestaat eigenlijk alleen uit checkboxen, de name voor de checkbox komt uit de array.

Na hangt er wat js in, en door middel van Ajax wil ik de checkboxen checked danwel unchecked hebben (het is een polling script, welke locaties aan/afwezig zijn).

Nu lijkt het dat js de namen van de checkboxen niet herkend; Ik krijg de melding 'Plaats.Naam is leeg of geen object.'

Wanneer ik echter een test checkbox hard codeer, werkt het wel goed.

Enig idee hoe dit te fixen is? Via Google wordt ik niet veel wijzer, de resultaten geven eigenlijk alleen maar hoe je de inhoud dynamisch update, niet hoe het zit met dynamische veldnamen.

[ Voor 4% gewijzigd door LiquidSmoke op 17-11-2009 23:52 ]


Acties:
  • 0 Henk 'm!

  • Tom
  • Registratie: Juni 1999
  • Niet online

Tom

Even met print_r() kijken wat je precies binnenkrijgt?

Ik post zoiets meestal als een array met een ID key. Daarna uitlezen met een foreach.
code:
1
foreach($_POST['item'] as $id => $value) { }

Acties:
  • 0 Henk 'm!

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 15-08 22:46

KompjoeFriek

Statsidioot

Met een debugger (zoals FireBug voor FireFox of de WebInspector in Safari) zijn dit soort fouten eenvoudig op te sporen.

(FireBug kan zelfs de binnenkomende data aan je tonen)

WhatPulse! - Rosetta@Home - Docking@Home


Acties:
  • 0 Henk 'm!

  • LiquidSmoke
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:53
Tnx voor de firebug tip, zal het onthouden.

De uitgelezen waardes zagen er goed uit, net nadat ik gister afsloot schoot er iets te binnen, wanneer ik de source van de pagina bekeek, leek het net of er een enter achter elke veldnaam stond.

In de locatienamen kunnen spaties zitten, en ik dacht klaar te zijn met een simpele str_replace, vervangen door een wat uitgebreidere preg_replace en het werkt als een zonnetje.

Ik denk dat het 'karakter' enter nog meegelezen werd uit de tekstfile, deze nu verwijderd dmv de preg_replace en het werkt :)

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Kijk anders eens naar trim().