Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[HTML] Layers in form werken niet

Pagina: 1
Acties:

  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
Ik heb een formulier en daarbinnen zit een layer. Ik gebruik de layer om dynamisch upload velden toe te voegen. Dus elke keer als de gebruiker op extra velden klikt schrijf ik de html code van een upload veld in de layer. Dit doe ik zo:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function extra_uploadfields() {
    
        var extrafield = '<table border="0" width="100%" id="table19" cellspacing="0"><tr><td width="25%"><input type="text" id="videotitle[]" size="28"></td><td width="75%"><input type="file" name="files[]" size="49"></td></tr><tr><td colspan="2"></td></tr></table>';
        
        var fields = "";
        
        for (var i = amount_of_extra_fields;i < (amount_of_extra_fields+5);i++) {
        
            temp = extrafield;
            
            //temp = temp.replace('[!-nr-!]',i);
            
            fields = fields + temp;
        
        }
        
        layer_extrafields.insertAdjacentHTML('beforeBegin',fields);
        
        amount_of_extra_fields += 5;
    
    }


Het probleem is nu dat deze extra velden niet worden gepost als ik het formulier submit. Ik kan alleen de velden zien die er oorspronkelijk instonden. De nieuwe aangemaakte velden niet. Weet iemand hier een oplossing voor?

Ik kan natuurlijk dit via php oplossen door formulier te posten als je op extra velden klikt en dan via php een nieuw formulier genereren met extra upload velden. Door het formulier te posten krijg ik de reeds ingevulde velden mee en kan ik die daarna opnieuw invullen zodat je niet steeds opnieuw hoeft te beginnen met het formulier in te vullen elke keer als je op extra velden klikt.
Ik wil echter liever niet dat de pagina opnieuw geladen moet worden.

Een andere oplossing waar ik niet mee kan leven is al direct 100 upload formulieren erin plakken en steeds een extra laten zien als je op het knopje extra upload formulier klikt.

  • WeeJeWel
  • Registratie: April 2007
  • Laatst online: 25-11 11:26
Het ligt eraan waar die layer komt te staan. Als je de <form> tag erboven houdt en de </form> tag eronder, moet hij gewoon goed worden gesubmit. Zet zonodig </form> net voor </body>

Homey — Critics are those without skills to create.


  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
Die layer staat wel in het form. Het probleem is ook niet echt de layer zelf maar dat ik er html code inschrijf. Die pakt hij niet

  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

En wij moeten je helpen... hoe?

Wat gaat er mis? Wat gebeurt er wel? Wat gebeurt er als je wat anders probeert in te voeren?

disjfa - disj·fa (meneer)
disjfa.nl


  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
disjfa schreef op dinsdag 25 september 2007 @ 09:34:
En wij moeten je helpen... hoe?

Wat gaat er mis? Wat gebeurt er wel? Wat gebeurt er als je wat anders probeert in te voeren?
Ik schrijf dat verhaal bovenaan niet voor niets. Wat er mis gaat is dat de nieuwe velden niet gepost worden zoals ik hierboven al gezegd heb. Wat er wel gebeurt, nouja rare vraag maar de rest wordt dus wel gepost. En wat betreft de laatste vraag vraag ik mij af of je uberhaupt wel mijn vraag gelezen hebt.

  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

edit

ik ken insertAdjacentHTML niet..




Aah een IE only functie, vandaar dat ik het niet begreep.

[ Voor 134% gewijzigd door disjfa op 25-09-2007 09:49 ]

disjfa - disj·fa (meneer)
disjfa.nl


  • Comgenie
  • Registratie: Oktober 2005
  • Laatst online: 23:28

Comgenie

Soms heb je dat

Hoe ik zelf zoiets ooit heb gemaakt, is een <FORM><DIV ID="uploadvelden"></DIV></FORM> structuur. En via javascript create Element. Misschien is dat een oplossing ?
Voorbeeld (snel gegoogled) te vinden.
http://www.dustindiaz.com/basement/addRemoveChild.html

ben momenteel niet thuis dus kan je niet mijn uitwerking geven, tenzij je graag tot vanavond wilt wachten ;).

[ Voor 18% gewijzigd door Comgenie op 25-09-2007 09:50 ]

No animals were harmed in the making of this comment.


  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
Comgenie schreef op dinsdag 25 september 2007 @ 09:49:
Hoe ik zelf zoiets ooit heb gemaakt, is een <FORM><DIV ID="uploadvelden"></DIV></FORM> structuur. En via javascript create Element. Misschien is dat een oplossing ?
Voorbeeld (snel gegoogled) te vinden:
http://www.dustindiaz.com/basement/addRemoveChild.html
Bedankt! Ik zal het meteen proberen :)

  • R0K13
  • Registratie: Januari 2003
  • Laatst online: 11-11 13:15
Ok sorry heb het echte probleem al gevonden. Alle formulier velden hadden een 'name' maar de gegenereerde velden hadden een 'id'. Blijkbaar zijn de twee niet gelijk voor een formulier. Foutje van een beginner.. sorry :|

  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

Dan kan je nog beter verder borduren met wat Comgenie zei. Jouw manier is een manier ooit ontworpen voor internet explorer 4, en word helaas nog ondersteund. Dat betekend alleen wel dat andere browsers er geheel niets mee gaan doen. En dat lijkt me niet de opzet.

disjfa - disj·fa (meneer)
disjfa.nl


  • WeeJeWel
  • Registratie: April 2007
  • Laatst online: 25-11 11:26
Wat ook werkt is x.innerHTML = x.innerHTML + \"<div><input ...></div>\";

Homey — Critics are those without skills to create.

Pagina: 1