Meerdere input's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Leon

Leon

01/01/2010 22:44:00
Quote Anchor link
Hoi ik had even een vraagje. Ik ben nu bezig met het maken van een simpele vragenlijst; enige probleempje: er zijn 57 vragen, allemaal met een anders POST (lijkt mij vooralsnog wel handig). Die heb ik allemaal in één keer in de database gedaan. Nou zoek ik eigenlijk een script of iets dergelijks wat meteen alle POST's controleert of ze leeg zijn en ze dan vervangen, i.p.v. elke apart te moeten doen. Als iemand een idee heeft hoor ik het graag!

*EDIT als er persé een beetje code voor nodig is hoor ik het wel
Gewijzigd op 01/01/1970 01:00:00 door Leon
 
PHP hulp

PHP hulp

16/03/2025 20:42:20
 

01/01/2010 22:49:00
 
Leon

Leon

01/01/2010 23:02:00
Quote Anchor link
Ik bedoel eigenlijk of het mogelijk is om er meteen bijvoorbeeld 30 te laten veranderen; anders moet je ze 1 voor 1 controleren...
 
- Mark -

- Mark -

01/01/2010 23:02:00
Quote Anchor link
Ik gok dat je zoiets bedoeld?

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
<?php

    #| Controleren of formulier is verzonden.
    
        if($_SERVER['REQUEST_METHOD'] == 'POST')
        {

            
        #| Loop door gehele " $_POST " array.
        
            foreach($_POST as $sleutel => $waarde)
            {

                
            #| Controleren of " $_POST[$sleutel] " een waarde heeft.
            
                if(!empty($_POST[$sleutel]))
                {

                
                    // Ingevuld.
                
                }
                else
                {
                    
                    // Leeg gelaten.
                    
                }
            }
            
        }


?>
 
- Mark -

- Mark -

01/01/2010 23:05:00
Quote Anchor link
Wat bedoel je met veranderen?
 
Leon

Leon

01/01/2010 23:10:00
Quote Anchor link
Ik zal even nadere uitleg geven:
Ik heb een form met 57 Posts erop. Om ze overzichtelijk in de Database te zetten heb ik ze allemaal in één $sleutel gezet; gewoon achter elkaar gescheiden door " - " dus ff samengevat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
if(isset($_POST['submit'])) {
$antwoorden = $_POST['antwoord1'].' - '.$_POST['antwoord2'].' - '.$_POST['antwoord3'].' - '.$_POST['antwoord4'].' - '.$_POST['antwoord5'].' - '.$_POST['antwoord6']; }

?>


Dit is in de Database gezet; nou zoek ik een manier om alle POST's in 1x te controleren of ze leeg zijn, en indien dat zo is ze door een tekstje te laten vervangen, zoals "Leeg"
 

01/01/2010 23:18:00
Quote Anchor link
Je doet het nu dus niet correct.
Die links hierboven zijn van tutorials over hoe je het wel op de juiste manier doet.
Leer ook die php tutorial, aangezien je ook verkeerd kijkt of een form gepost is.
 
Leon

Leon

01/01/2010 23:21:00
Quote Anchor link
Ehm... Even voor mezelf: Als dit niet correct is, waarom werkt het dan? (Ja ik ben nog een beetje aan het oefenen)
 

01/01/2010 23:24:00
Quote Anchor link
Links rijden is ook niet correct, maar het werkt wel (tot dat je onder die vrachtauto zat).
 
Leon

Leon

01/01/2010 23:31:00
Quote Anchor link
ok punt voor jou maar toch vraag ik me af wat er niet goed aan is, alles werkt gewoon goed, alleen zoek ik iets om alle empty post's te laten veranderen; apart zou ik het zo doen:

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
<?
if(isset($_POST['submit'])) {
    if($_POST['antwoord1'] == "") {
      $antwoord1 = "Leeg"
     }
    if($_POST['antwoord2'] == "") {
      $antwoord2 = "Leeg"
     }
$antwoorden = $_POST['antwoord1'].' - '.$_POST['antwoord2'];
$insert_test = "INSERT INTO toets (id,antwoorden)
VALUES (0,'{$antwoorden}')"
;
mysql_query($insert_test);

 }

?>


Dit werkt ook volgens mij maar is dit ook massaal te doen voor allemaal of niet? (waarschijnlijk vragen jullie je af waarom ik niet gewoon dit 57x kopieër maar het zijn iets moeilijkere value's dan antwoord1 en antwoord2)
Gewijzigd op 01/01/1970 01:00:00 door Leon
 

01/01/2010 23:36:00
Quote Anchor link
Leon schreef op 01.01.2010 23:31:
ok punt voor jou maar toch vraag ik me af wat er niet goed aan is, alles werkt gewoon goed, alleen zoek ik iets om alle empty post's te laten veranderen; apart zou ik het zo doen:

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
<?
if(isset($_POST['submit'])) {
    if($_POST['antwoord1'] == "") {
      $antwoord1 = "Leeg"
     }
    if($_POST['antwoord2'] == "") {
      $antwoord2 = "Leeg"
     }
$antwoorden = $_POST['antwoord1'].' - '.$_POST['antwoord2'];
$insert_test = "INSERT INTO toets (id,antwoorden)
VALUES (0,'{$antwoorden}')"
;
mysql_query($insert_test);

 }

?>


Dit werkt ook volgens mij maar is dit ook massaal te doen voor allemaal of niet? (waarschijnlijk vragen jullie je af waarom ik niet gewoon dit 57x kopieër maar het zijn iets moeilijkere value's dan antwoord1 en antwoord2)

Wat doe je er niet goed aan?
Je kijkt op de verkeerde manier of een post is gedaan. Niet elke browser stuurt een submit mee.
Je stopt alle antwoorden in een vakkie dat is niet de bedoeling. Je hoort koppeltabellen e.d. te gebruiken, want nu kan je er dus niks uit opmaken. Je kunt niet in een keer ophalen hoe vaak op vraag twaalf een bepaald antwoord is gegeven.
Je douwt direct een post waarde in de query. Dat is vragen om moeilijkheden.
 
Leon

Leon

01/01/2010 23:42:00
Quote Anchor link
Punt is duidelijk, ik moet de tutorials nog maar eens nalezen. Toch nog 1 opmerking: Ik gebruik, om deze later weer netjes op te halen, gewoon Explode. Toch verbaast het me om te horen dat Submit niet goed werkt in sommige browsers; dat is echt nieuw voor me... Ik gebruik Mozilla, IE en Chrome, maar nog nooit echte problemen gehad met submit... En daarbij hoeft er niet vergeleken te worden; het is individueel, dus er moet gewoon van 1 row uit de DB alles worden weergegeven.

Misschien dat dit niet veel veranderd aan je antwoord; indien dit toch zo is hoor ik het wel!
 
- Mark -

- Mark -

01/01/2010 23:48:00
Quote Anchor link
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
<?php

    #| Settings | Aantal vragen.
    
        $aantal_vragen = 57;
        
    
    #| Set " $data " array voor het opslaan van alle antwoorden.
    
        $data = array();
        
        
    #| Controleren of formulier is verzonden.
    
        if($_SERVER['REQUEST_METHOD'] == 'POST')
        {

                
        #| Loop door alle vragen heen.
        
            for($vraag = 1; $vraag <= $aantal_vragen; $vraag++)
            {

                
            #| Controleren of er een antwoord is ingevuld.
            
                if(!empty($_POST['antwoord'.$vraag]))
                {

                
                /*---- INFO: Ja er is iets ingevuld. ----*/

                    $data[] = $_POST['antwoord'.$vraag];
                    
                }

                else
                {

                /*---- INFO: Nee er is niets ingevuld, Antwoord invullen met Leeg. ----*/
                    
                    $data[] = 'leeg';
                    
                }
            }

            
            
        #| Lijst met antwoorden samenstellen.
            
            $antwoorden = implode(' - ', $data);
                
        }


?>


EDIT: De [] vergeten bij het toevoegen van de antwoorden aan de $data array.

Karl heeft gelijk over het invoeren van de gegevens. Met bovenstaande code kun je het doen zoals je het eerst van plan was maar ik zou als je toch bezig bent je database opnieuw opbouwen.
Gewijzigd op 01/01/1970 01:00:00 door - Mark -
 
Leon

Leon

02/01/2010 00:02:00
Quote Anchor link
Dit is idd iets anders dan hoe ik het altijd gedaan heb; goed om te weten! Maar (JA er is weer een maar kan nogal irritant overkomen) maar hier staat niets over INSERT INTO (db) enzovoorts, ik ga er vanuit dat dit niet veranderd?
EN nog een klein (misschien dom) vraagje: dit werkt nog steeds met $_POST['submit'] en het standaard HTML gedeelte?
 
- Mark -

- Mark -

02/01/2010 00:04:00
Quote Anchor link
Het is ter vervanging van.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
if(isset($_POST['submit'])) {
$antwoorden = $_POST['antwoord1'].' - '.$_POST['antwoord2'].' - '.$_POST['antwoord3'].' - '.$_POST['antwoord4'].' - '.$_POST['antwoord5'].' - '.$_POST['antwoord6']; }

?>


Hij gaat van antwoord 1 tot 57. Wil je meer of minder antwoorden dan verander je dat in de settings " $aantal_vragen "
 
Leon

Leon

02/01/2010 00:09:00
Quote Anchor link
(ik vind het ook stom van mezelf, maar...) En de
<input type="submit" name="submit" value="Verstuur >" /> regel gewoon laten staan of weghale?
 
- Mark -

- Mark -

02/01/2010 00:11:00
Quote Anchor link
Lol Je moet natuurlijk wel een knop hebben om het formulier te versturen. Die regel moet dus gewoon blijven staan. Alleen het controleren of een formulier is verstuurd moest veranderd worden.
 
Leon

Leon

02/01/2010 00:13:00
Quote Anchor link
OK Bedankt!!! Dit is de 1e keer dat ik eens een logisch antwoord krijg in een forum, heb er al 5 geprobeerd :( Heel erg bedankt voor de hulp!
 
Milo

Milo

02/01/2010 00:26:00
Quote Anchor link
Maar je hebt nog steeds een fout database model, niet waar?
 
- Mark -

- Mark -

02/01/2010 00:28:00
Quote Anchor link
Knutsel maar nog eens een tijdje aan je script, En bouw vooral je database anders op zoals Karl al voorstelde.

Nog een kleine tip, Vergeet niet commentaar toe te voegen aan je script. Je leest dan veel gemakkelijker door een script heen. Zoals je ziet staat er in mijn voorbeeld overal een regel met commentaar. Zo hoef je niet de gehele code te doorlopen om te weten wat elk stukje doet of waar het voor is.

Ja ik weet dat het meer werk is maar het is de moeite waard.
 
Milo

Milo

02/01/2010 00:32:00
Quote Anchor link
Als je zou vertellen wat je wilt weten van mensen kunnen wij misschien helpen met een goed db model..

BDW: Weet je hoe eng dichtbij jij woont?
 

Pagina: 1 2 volgende »



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.