Meer formulier velden toevoegen dmv javascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Milo S

Milo S

05/08/2010 11:44:06
Quote Anchor link
Hallo,

Ik ben bezig met een formulier waarmee een bedrijf projecten toe kan voegen aan hun database en dat willen zei zo:
http://www.party-vision.nl/AddProject.png

Nu krijg ik het natuurlijk wel voor elkaar om een input veld en textarea te maken, maar ik heb geen idee hoe ik dat laatste gedeelte voor elkaar krijg, dus dat de velden er bij komen met 1 druk op de knop.

Gr, milo
Gewijzigd op 05/08/2010 11:44:35 door Milo S
 
PHP hulp

PHP hulp

26/01/2025 15:17:52
 
Obelix Idefix

Obelix Idefix

05/08/2010 11:47:58
Quote Anchor link
Al in de broncode van die site gekeken?
 
Milo S

Milo S

05/08/2010 11:49:34
Quote Anchor link
Dat is een photoshop bestand, zo moet het uiteindelijk worden... Er valt dus weinig te zien, tis gemaakt in een browser om zo het eindresultaat goed te kunnen zien. Gelukkig heb ik niet de lay-out bedacht XD haha.
Gewijzigd op 05/08/2010 11:50:38 door Milo S
 
Sebastiaan Blaas

Sebastiaan Blaas

05/08/2010 11:54:29
Quote Anchor link
je kan door onderaan je veld een placeholder toe te voegen ( in dit geval bijvoorbeeld een div )
met jquery er element aan toevoegen

kort voorbeeldje ( niet getest dus kunnen fouten inzitten )
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
<a href="#" id="add">Voeg meer toe</a>
<br />
<div id="placeholder"></div>

<script type="text/javascript">
var idx = 0;
$(function(){
$("#add").click(function(e){
$("#placeholder").append ( "<input type='text' name='extra_" + idx + "' />" );
idx++;
e.preventDefault();
});
});
</script>
 
Milo S

Milo S

05/08/2010 12:10:18
Quote Anchor link
Hey Sebastiaan, zoiets is denk ik wel wat ik zoek, alleen kan ik op voeg meer toe drukken wat ik wil er gebeurt alleen niks, en dreamweaver zegt ook niet dat er een syntax error is.

Conclusie hij zou het moeten doen maar er gebeurt niks...
 
Sebastiaan Blaas

Sebastiaan Blaas

05/08/2010 12:19:39
Quote Anchor link
milo je mag ook een beetje googlen enzo...

Je moet natuurlijk wel de jquery library downloaden en includen in je headers.. en wat ik al zei.. ik heb het even uit het hoofd geklopt dus kunnen anzich best syntax errors inzitten..

Ik ben best goed.. maar blijf wel een mens :P
 
Milo S

Milo S

05/08/2010 12:27:58
Quote Anchor link
Nou weet je wat het is, ik heb die library er als goed is al instaan vanwege het lightbox ding dat ook gebruik.
dreamweaver zegt dat er geen fouten inzitten, maar ik weet niet hoe ik dit moet noemen dus ik kan ook niet zomaar gaan googlen op vergelijkbare scripts...
 
Sebastiaan Blaas

Sebastiaan Blaas

05/08/2010 12:28:34
Quote Anchor link
staat het ergens online dat ik het kan zien ?

Toevoeging op 05/08/2010 12:29:08:

ow en installeer firebug ff( firefox add on )

dan is het wat makkelijker debuggen.. dan kan je eventueel ook de syntax error hier droppen
 
Milo S

Milo S

05/08/2010 12:34:20
Quote Anchor link
Ben ik mee bezig, ik doe het namelijk op me localhost ;).

Gedaan, maar die zegt ook niet echt iets...
 
Sebastiaan Blaas

Sebastiaan Blaas

05/08/2010 12:39:54
Quote Anchor link
als je firebug ff installeerd en de syntax error hier kopierd kan ik er mss wel wat mee
 
Milo S

Milo S

05/08/2010 12:42:00
Quote Anchor link
Mmmm had hem net online deed ei het daar wel dus ik even opnieuw naar de localhost pagina enzo doet ie het wel!
Hartelijk bedankt hiervoor, ik ga nog even kijken of er een trucje is dat het script 5 keer uitgevoerd word bij 1 druk op de knop, en hoe ik het moet afhandelen in php.

5 keer uitvoeren heb ik met for lus opgelost, nu kijken hoe ik dit makkelijk afhandel...
Gewijzigd op 05/08/2010 12:45:05 door Milo S
 
Sebastiaan Blaas

Sebastiaan Blaas

05/08/2010 12:46:20
Quote Anchor link
5 x is for loopje eromheen.
for ( i = idx; i <= ( idx + 5 ); i++ ) {
// append stukje
idx++;
}

en in php kan je dan gewoon je post values afvangen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
foreach ( $_POST as $sKey => $sValue ) {
if ( stristr ( $sKey, "extra_" ) ) {
list ( $sVerwaarloosbaar, $iExtraNum = split ( "_", $sKey );
}
[
/code]
$iExtraNum = dan "idx" en $sValue is de waarde van uit het veld..
 
Milo S

Milo S

05/08/2010 16:52:28
Quote Anchor link
Okee blijkbaar word het lastiger dan ik dacht want er moet ook nog een php code inkomen :S.

Dit is nu mijn gehele code:
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<script type="text/javascript">
for(idx = 1; idx <= 5; idx++)
{
    $(function()
    {
        $("#add").click(function(e)
        {
            $("#placeholder").append ("<label>Ornament</label<select class='ornamenten' name='ornament" + idx + "'><option>a</option><option>b</option><option>c</option><option>d</option></select><label for='3' class='aantal'>Aantal</label><input id='3' class='aantal' name='aantal' type='text' />");
            
        idx++;
        e.preventDefault();
        });
    });
}
</script>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $qry = "INSERT INTO
                evenementen
                    (
                    titel,
                    begindatum,
                    einddatum,
                    algemeneinformatie
                    )
            VALUES
                (
                '"
.mysqli_real_escape_string($conn, $_POST['titel'])."',
                '"
.mysqli_real_escape_string($conn, $_POST['begindatum'])."',
                '"
.mysqli_real_escape_string($conn, $_POST['einddatum'])."',
                '"
.mysqli_real_escape_string($conn, $_POST['algemeneinformatie'])."'
                )"
;
                
    if($sql = mysqli_query($conn, $qry))
    {

        # Laatste gebruikte id ophalen
        $lastid = mysqli_insert_id($conn);
        
        # Alle $_POST vars oppakken
        foreach($_POST as $key => $value)
        {

            # Alle ornamenten splitsen
            for($i = 0; $i <= $_POST['aantal']; $i++)
            {

                if(stristr($key, 'ornament_0'))
                {
    
                    list($onnodig, $ornamentid) = split('_', $key);
    
                    $qry = "INSERT INTO
                                voorraad
                                    (
                                    event_id
                                    ornament_id
                                    )
                            VALUES
                                (
                                '"
.mysqli_real_escape_string($conn, $lastid)."',
                                '"
.mysqli_real_escape_string($conn, $ornamentid)."'
                                )"
;
                                
                    if($sql = mysqli_query($conn, $qry))
                    {

                        echo 'Uw project is succesvol geplaatst.';
                    }

                    else
                    {
                        echo 'Er zit een fout in de query.<br />';
                        echo mysqli_error($sql);
                    }
                }

                else
                {
                    echo 'fout bij stristr.<br />';    
                }
            }
        }
    }

    else
    {
        echo 'Er is een fout opgetreden tijdens het plaatsen van dit project.';
    }
}

else
{
?>

    <form action="" method="post">
        <label id="1">Titel project</label>
        <input id="1" name="titel" type="text" />
        <br />
        
        <label id="2">Algemene informatie</label>
        <textarea id="2" name="algemeneinformatie"></textarea>
        <br />
        
        <label id="3">Begin datum</label>
        <input id="3" name="begindatum" type="text" value="yyyy-mm-dd" />
        <br />
        
        <label id="4">Eind datum</label>
        <input id="4" name="einddatum" type="text" value="yyyy-mm-dd" />
        <br />
        
        <label>Ornament</label>
        <select class="ornamenten" name="ornament">
            <option>a</option>
            <option>b</option>
            <option>c</option>
            <option>d</option>
        </select>
        
        <label for="5" class="aantal">Aantal</label>
        <input id="5" class="aantal" name="aantal" type="text" />
        <br />
        
        <div id="placeholder"></div>
        
        <a class="addornamenten" href="#" id="add">Meer ornamenten</a>
        
        <input class="submit" type="submit" value="Plaats project" />
    </form>
<?php
}
?>


Wat zou er moeten gebeuren:
- Je vult alle gegevens in incl. een aantal ornamenten
--- Dan word het evenement geplaatst en laatst gebruikte id onthouden om die bij event_id te zetten bij volgende stap
--- Alle ornamenten moeten in de database, hiervoor heb ik: id, event_id en ornament_id nodig.

Bij het javascript gedeelte zit dus 1 selectbox, hier moeten alle ornamenten komen die de gebruiker in de database heeft, een php mysql verhouding dus... hier kom ik niet echt uit.
Gewijzigd op 05/08/2010 17:03:48 door Milo S
 



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.