show() hide()

Status
Niet open voor verdere reacties.

BZilla

Gebruiker
Lid geworden
16 apr 2014
Berichten
170
Goeiemiddag,

IK wil doormiddel van een radio 2x 5 velden toevoegen.(show)
Wanneer ik dit gedaan heb moet ik die velden ook weer kunnen verwijderen (hide)

Ik heb 2x een show functie en 2x een hide functie.

De 2 show functies werken prima. De laatste (hide15mailsForm()) werkt ook.

Het gaat specifiek om hide10mailsForm()..
Deze wil het maar niet doen. Iemand enig idee wat ik daar fout doe?

Alvast bedankt.

Bzilla
 
Laatst bewerkt:
Wat voor browser gebruik je? Zoek daar je ontwikkelaarstools even op (IE: F12, Chrome: CTRL+i)

Wanneer ik je Fiddle doorklik krijg ik na het aangeven van 1x "Get 5 more" en daarna "Hide last 5" deze melding in mijn console:
Code:
Uncaught TypeError: Cannot read property 'style' of null ( index ):39
 
Het gaat om deze regel

Code:
document.getElementById(options[i]).style.display = 'block';

In deze functie:

Code:
function hide10mailsFormSA(selection) 
{
   // Array aanmaken
   var options = new Array('10mailsSA', 'get10mailsSA');
   // Alles verbergen
   for (i = 0, max = options.length; i < max; i++) {
   document.getElementById(options[i]).style.display = 'block';
   }
// De meegegeven waarde tonen
document.getElementById(selection).style.display = 'none';
}

Maar de benamingen zitten zo ver ik zie overal goed..
 
Laatst bewerkt:
Dat is de browser toch niet met je eens ;)

Er bestaat geen ID hide10mailsTAB, alleen een element met name="hide10mailsTAB"
 
Code:
<div name='hide10mailsTAB' id='hide10mailsTAB'>

Neem aan dat deze regel bedoeld wordt.. er bestaat dus wel degelijk een ID. of kijk ik (opnieuw) verkeerd?
 
Ah, je hebt gelijk. Door de lijnafbreking stond hij bij mij op de volgende regel waardoor ik hem over het hoofd zag.

Het probleem zit hem in de naamgeving. Je gebruikt 5mailsTab, 10MailsTab en 15mailsTab. Trek het dus gelijk: Overal "mails" of overal "Mails".

Verder lijkt het er op alsof je enorm omslachtig bezig bent om iets eenvoudigs te genereren. Je kunt namen van HTML-formulier elementen gewoon een array-notatie geven, dan hoef je van tevoren nog niet te weten hoeveel dat er gaan worden.

HTML:
<input type="email" name="customerEmail[]" />
<input type="email" name="customerEmail[]" />
<input type="email" name="customerEmail[]" />

Verstuur je dit formulier dan krijg je met PHP als je $_POST['customerEmail'] dumpt een array met 3 waardes terug.
 
Daar had ik nog niet over nagedacht (de array) die ga ik zeker gebruiken.

Ik heb de benamingen gecontroleerd en het werkt.
Hartstikke bedankt... 3 dagen kijk ik erover heen..

Echt bedankt!
 
Klein vraagje nog.. Met $_POST['customerEmail'] krijg ik waarde 'Array' terug ipv de output van de velden.. enig idee waarom?
 
Waarschijnlijk doe je
PHP:
echo $_POST['customerEmail'];

Omdat het een array is zul je er door heen moeten "loopen":
PHP:
foreach ($_POST['customerEmail'] AS $email) {
    echo $email .'<br />';
}
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan