Offerte met dynamisch input fields versturen naar Email dmv PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Don

Don

15/07/2009 18:17:00
Quote Anchor link
Hallo allemaal! Ten eerste zeg ik even dat ik weinig van PHP, noch Javascript weet, maar ik red me aardig.

Ik ben bezig met een offerte formulier. Een static formulier met invoervelden, dropdownboxes en radiobuttons invullen en vervolgens versturen naar een e-mail adres heb ik. Nu is het zo dat mensen ook de mogelijkheid moeten hebben om een input field erbij te plaatsen (net als gmail upload dinges, waarbij je op een link klikt en er een volgende input field verschijnt).

Het is me gelukt om door middel van javascript deze velden erbij te kunnen halen en weer te verwijderen. Ik krijg het alleen niet voor elkaar om dan met PHP ervoor te zorgen dat deze ook in de POST verschijnen, voor de mail, snappen jullie?

Het is namelijk natuurlijk mogelijk dat mensen maar 1 ding uit de offerte willen, en andere willen meerdere input fields hebben.

Ik zal het even laten zien dmv mijn code.

----- Het Javascript ------
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script>
function addEvent() {
  var ni = document.getElementById('myDiv');
  var numi = document.getElementById('anotherName');
  var num = (document.getElementById("anotherName").value -1)+ 2;
  numi.value = num;
  var divIdName = "my"+num+"Div";
  var newdiv = document.createElement('div');
  newdiv.setAttribute("id",divIdName);
  newdiv.innerHTML = "<input type=\"text\" name=\"yourname\" /> <a href=\"javascript:;\" onclick=\"removeElement(\'"+divIdName+"\')\">Remove the element &quot;"+divIdName+"&quot;</a>";
  ni.appendChild(newdiv);
}

function removeElement(divNum) {
  var d = document.getElementById('myDiv');
  var olddiv = document.getElementById(divNum);
  d.removeChild(olddiv);
}
</script>


----- Kleine greep uit de Form ------

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form action="contact.php" method="post">

<dl>
    <dt><label for="name">Naam:</label></dt>
    <dd><input type="text" name="yourname" /></dd>
</dl>
<dl>
    <dt><label for="anotherName"><input type="hidden" value="0"        id="anotherName" /><a href="javascript:;" onclick="addEvent();">Voeg nog een naam toe</a></label></dt>
    <dd><div id="myDiv"> </div></dd>
</dl>

<dl>
    <input type="submit" value="Send it!">
</dl>


----------

Als er dan op Submit wordt geklikt, moet er een tweede naam bij komen als deze is ingevuld, anders niet.

---- En dan hier mijn PHP ----

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
/* Set e-mail recipient */
$myemail  = "mijn email adres";

/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your name");
$subject  = check_input($_POST['subject'], "Write a subject");
$email    = check_input($_POST['email']);
$telefoon    = check_input($_POST['telefoon']);
$website  = check_input($_POST['website']);
$likeit   = check_input($_POST['likeit']);
$isolatieglas_aantal = check_input($_POST['isolatieglas_aantal']);
$isolatieglas_uwaarde = check_input($_POST['isolatieglas_uwaarde']);
$isolatieglas = check_input($_POST['isolatieglas']);
$spiegels = check_input($_POST['spiegels']);
$spiegels_aantal = check_input($_POST['spiegels_aantal']);
$spiegels_anderekleur = check_input($_POST['spiegels_anderekleur']);
$comments = check_input($_POST['comments'], "Write your comments");

/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{

    show_error("E-mail address not valid");
}


/* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $website))
{

    $website = '';
}


/* Let's prepare the message for the e-mail */
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:

---------------------------- PERSOONLIJKE INFORMATIE ----------------------------

Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon

--------------------------------- ISOLATIEGLAS ----------------------------------

Aantal isolatieglas: $isolatieglas_aantal
Isolatieglas: $isolatieglas
U-waarde: $isolatieglas_uwaarde

----------------------------------- SPIEGELS ------------------------------------

Aantal spiegels: $spiegels_aantal
Kleur: $spiegels
Andere kleur: $spiegels_anderekleur

---------------------------------- COMMENTAAR -----------------------------------

$comments

"
;

/* Send the message using mail() function */
mail($myemail, $subject, $message);

/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();

/* Functions we used */
function check_input($data, $problem='')
{

    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {

        show_error($problem);
    }

    return $data;
}

function
show_error($myError)
{

?>

    <html>
    <body>

    <b>Gelieve de volgende error te corrigeren:</b><br />
    <?php echo $myError; ?>

    </body>
    </html>
<?php
exit();
}

?>


--------

En dan nog meer code dat even niet relevant is.

Dus: Hoe zorg ik ervoor dat als de gebruiker een 2e input field kiest, dat deze dan een naam krijgt en automatisch bij de uitkomst voor de e-mail verschijnt.

Hopelijk ben ik niet de verwarrend!!

Everlast
Gewijzigd op 01/01/1970 01:00:00 door Don
 
PHP hulp

PHP hulp

17/11/2024 16:28:52
 
- SanThe -

- SanThe -

15/07/2009 18:23:00
Quote Anchor link
Je post is nu niet echt leesbaar. Pas je post even aan en gebruik en tags om je code heen. Om php code zet je uiteraard dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php en ?>
Gebruik je Afbeelding knop om dit te doen.

SanThe.
 
Don

Don

15/07/2009 18:53:00
Quote Anchor link
Ik heb hem aangepast, mijn excuses.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.