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

[JS]Gegevens versturen

Pagina: 1
Acties:

  • biwitch
  • Registratie: Februari 2006
  • Laatst online: 22-11-2024
Hieronder vind je het script dat ik gemaakt heb, om een dropdownlist te krijgen, en daarachter het aantal velden.

Ik zou graag zien dat deze gegevens net als de rest van het formulier wordt verstuud naar mijn email.
Daar is al een PHP actie gelegd dmv POST.

Maar hoe krijg ik de gegevens van zo'n javascript ook in diezelfde email.


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<script type="text/javascript">
function displayfields(dropdownlist)
{

   var aantalPersonen = dropdownlist.options[dropdownlist.selectedIndex].value;
   var Naam;
   var Email;
   var Telefoon;
        var extraVeldenContainer = document.getElementById("extravelden");

   // LET OP: maak extraVeldenContainer (<div>) eerst leeg:
   empty(extraVeldenContainer);

        // maak van "1"/"2"/enz. 1/2/enz.
   aantalPersonen = parseInt(aantalPersonen);

        // loop door het aantal personen heen:
   for (var i = 0; i < aantalPersonen; i++) {
      extraVeldenContainer.appendChild(document.createTextNode("Naam: "));

      naam = document.createElement("input");
      naam.setAttribute("type", "text");
      naam.setAttribute("name", "Naam[" + i + "]");

      extraVeldenContainer.appendChild(naam);
      extraVeldenContainer.appendChild(document.createElement("br"));

      extraVeldenContainer.appendChild(document.createTextNode("Email: "));

      leeftijd = document.createElement("input");
      leeftijd.setAttribute("type", "text");
      leeftijd.setAttribute("size", "3");
      leeftijd.setAttribute("name", "Email[" + i + "]");

      extraVeldenContainer.appendChild(leeftijd);
      extraVeldenContainer.appendChild(document.createElement("br"));

      extraVeldenContainer.appendChild(document.createTextNode("Telefoon: "));

      email = document.createElement("input");
      email.setAttribute("type", "text");
      email.setAttribute("name", "Telefoon[" + i + "]");

      extraVeldenContainer.appendChild(email);
      extraVeldenContainer.appendChild(document.createElement("p"));
   }
}

// pak een element (node) en zoek daarin alle elementen
// deze elementen worden vervolgens verwijderd, en daarin ook
// alle andere elementen die zich weer bevinden IN dat element
// deze functie werkt dus recursief!!
function empty(node)
{
   if (!node) return;

   while (node.hasChildNodes()) {
      empty(node.firstChild);
      node.removeChild(node.firstChild);
   }
}

</script>
<select name="aantalpersonen" onchange="javascript:displayfields(this)">
  <option value="1">1 persoon</option>
  <option value="2">2 personen</option>
  <option value="3">3 personen</option>
  <option value="4">4 personen</option>
</select>
<div id="extravelden">
<!-- hier komen alle extra velden in terecht -->
</div>

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:35

Janoz

Moderator Devschuur®

!litemod

Java is absoluut niet hetzelfde als javascript. Daarnaast hoort javascript in WEB.

Titel aangepast en topic verplaatst....

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
HTML:
1
2
3
4
5
6
<form action="PHPpaginaDieAllesVerwerkt" method="POST">
<select>...</select>
<input type="submit" value="verzend da ies snel!">
</form>

<script></script>

  • biwitch
  • Registratie: Februari 2006
  • Laatst online: 22-11-2024
Zoals ik al zei, heb ik dat al!

Alleen hij neemt de inhoud van de velden niet op die door JS gegenereerd zijn.
Ik krijg dan als output:

Naam: array

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Zover ik in je code kan zien is Naam ook wel degelijk een array? ik maak m'n forms bijna steeds op via één array:

HTML:
1
2
3
4
    <input name="contact[naam]" value="" ...>
    <input name="contact[voornaam]" value="" ...>
    <input name="contact[telefoon]" value="" ...>
    <input name="contact[email]" value="" ...>

met
PHP:
1
2
3
    $input = $_POST[contact];
    $naam = $_POST[contact][naam];
    doeIetsIntelligentMetEmail($input[email]);

[ Voor 3% gewijzigd door moozzuzz op 02-11-2007 13:24 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:56

crisp

Devver

Pixelated

In welke browser test je? Want ik kan je zo al vertellen dat IE dit niet slikt:
JavaScript:
1
2
3
email = document.createElement("input");
email.setAttribute("type", "text");
email.setAttribute("name", "Telefoon[" + i + "]"); 
;)

Intentionally left blank


  • biwitch
  • Registratie: Februari 2006
  • Laatst online: 22-11-2024
Ik heb het getest met IE7, en dat werkte prima.

Tot nu toe heb ik dit kunnen maken. Emailadres afgeschermd
<snip>
Als je code post, post dan enkel relevante delen, en geen enorme lappen code die er niet toe doen.

[ Voor 112% gewijzigd door RobIII op 02-11-2007 14:06 ]


Verwijderd

Laat je php code eens zien, want volgens mij gaat het daar (ook) fout.

JavaScript:
1
2
3
naam = document.createElement("input"); 
naam.setAttribute("type", "text"); 
naam.setAttribute("name", "Naam[" + i + "]"); 


Het naam veld krijg je als array binnen, dus die verwerk je dan ook zo. Wat ik uit je vervolg post begrijp, krijg je ook een array terug.

PHP:
1
2
3
$namen=$_POST["Naam"];
foreach($namen as $naam)
echo $naam;


Wat krijg je uberhaupt binnen? Doe eens een var_dump van de post variabelen?

PHP:
1
var_dump($_POST);


Krijg je scripting fouten?

  • biwitch
  • Registratie: Februari 2006
  • Laatst online: 22-11-2024
Je gaat me iets te snel.klein n00bmeisje
Wat moet ik met die var_dump doen?
<snip>
2e keer: ik blijf niet bezig: :|

Als je code post, post dan enkel relevante delen, en geen enorme lappen code die er niet toe doen.

[ Voor 191% gewijzigd door RobIII op 02-11-2007 14:11 ]


  • biwitch
  • Registratie: Februari 2006
  • Laatst online: 22-11-2024
Kan je uberhaupt wel met javascript data versturen.

ik heb wel een mailform van java bekeken, maar die heeft dan een functie die alleen werkt met Outlook gebruikers. Dus die vorm van verzenden zou ik niet kunnen gebruiken.

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Start bij het begin:... want je begint in het wilde weg te schieten (en dat kost veel kogels en brengt weinig zoden aan de dijk).
Pagina: 1