1 form maar 2 knoppen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koen B

Koen B

01/02/2007 20:12:00
Quote Anchor link
Hey

Ik heb een form met 2 knoppen, een verwijder en een toevoeg knop.
Ze maken beide gebruik van dezelfde invoer velden dus staat ook in hetzelfde <form>!

Om te kunnen kijken of er iets gepost word gebruik ik normaal:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_POST['iets']){

Maar omdat je niet weet op welke knop er gedrukt is weet je niet wat php moet gaan doen.

Om de naam van de knop te gebruiken helpt niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($_POST['id_van_de_button]){


Weet iemand hoe dit wel op te lossen is?
Alvast bedankt, Koen
 
PHP hulp

PHP hulp

16/04/2024 07:51:04
 
- -

- -

01/02/2007 21:47: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
<?php

if($_POST['naam_van_de_button'] == 'value_van_de_button')
{

//naam_van_de_button is aangeklikt
}
else
{
//naam_van_de_button2 is aangeklikt
}

?>
 
Arjan Schuurman

Arjan Schuurman

01/02/2007 22:31:00
Quote Anchor link
doe dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<form method="post" action="#">
<input type="submit" value="toevoegen" name="knop_toevoegen">
<input type="submit" value="verwijderen" name="knop_verwijderen">
</form>

Heb je dat wel in html goed gedaan?
 
Jan Koehoorn

Jan Koehoorn

01/02/2007 22:38:00
Quote Anchor link
@ Herjan: beter zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        switch ($_POST['submitbutton']) {
            case
'toevoegen':
                // doe iets
                break;
            case
'verwijderen':
                // doe iets anders
                break;
        }
    }

?>
 
Koen B

Koen B

01/02/2007 22:38:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<input type="button" class='buttons' name="add" value="Add" onClick="send('friendsform','yourfriends','wijzigen2.php');">
<input type="button" class='buttons' name="remove" value="Remove" onClick="send('friendsform','yourfriends','wijzigen2.php');">


Dit is mijn html, en de php is nu:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
//hier ander spul
} elseif($_POST['remove'] == "Remove"){
  echo "iets";
} else {
  echo "fout";
}

Door de onClick functie word ajax geactiveerd en die stuur alle dingen die in het form staan als POST naar de php. Dit werkt gewoon in andere dingen (als ik niet de button nodig heb om te zien of er iets is gesubmit.
Gewijzigd op 01/01/1970 01:00:00 door Koen B
 
Koen B

Koen B

01/02/2007 22:40:00
Quote Anchor link
Jan Koehoorn schreef op 01.02.2007 22:38:
@ Herjan: beter zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        switch ($_POST['submitbutton']) {
            case
'toevoegen':
                // doe iets
                break;
            case
'verwijderen':
                // doe iets anders
                break;
        }
    }

?>


Wat is precies het verschil tussen dit en werken met if en else?
Ik gebruik if en else omdat ik dat persoonlijk veel overzichtelijker vind, maar zitten hier voordelen aan?
 
Jan Koehoorn

Jan Koehoorn

01/02/2007 22:41:00
Quote Anchor link
@ koen: waarom wil je het met AJAX? Wil je geen page-reload na versturen van het formulier?
 
Koen B

Koen B

01/02/2007 22:50:00
Quote Anchor link
@Jan
Ik ga het gebruiken in een membersysteem waar mensen vrienden kunnen toevoegen en verwijderen.
De lijst met vrienden staat een een <select> op options
Alleen die select word herladen zodat de de nieuwe naam erin staat, of de verwijderde naam weg is. Dit scheelt heel veel tijd en is veel gebruiksvriendelijker! En het scheelt ook nog een hoop datalimiet :p maar dat is minder belangrijk ...
 
Jan Koehoorn

Jan Koehoorn

01/02/2007 23:36:00
Quote Anchor link
Quote:
Wat is precies het verschil tussen dit en werken met if en else?
Ik gebruik if en else omdat ik dat persoonlijk veel overzichtelijker vind, maar zitten hier voordelen aan?

In het voorbeeld van Herjan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
    if($_POST['naam_van_de_button'] == 'value_van_de_button')
    {

        //naam_van_de_button is aangeklikt
    }
    else
    {
        //naam_van_de_button2 is aangeklikt
    }
?>

wordt niet gecontroleerd of het formulier ook daadwerkelijk verzonden is. Als dat niet zo is, is de if false en wordt het else statement uitgevoerd. In mijn voorbeeld wordt het wel gecontroleerd. Bovendien is de switch gemakkelijk uit te breiden en overzichtelijker.
 
Koen B

Koen B

02/02/2007 16:32:00
Quote Anchor link
beide manieren werken niet :(
Weet iemand hoe het wel kan? :o
 
- -

- -

02/02/2007 16:37:00
Quote Anchor link
<input type="button" class='buttons' name="submitbutton" value="toevoegen" onClick="send('friendsform','yourfriends','wijzigen2.php');">
<input type="button" class='buttons' name="submitbutton" value="verwijderen" onClick="send('friendsform','yourfriends','wijzigen2.php');">


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        switch ($_POST['submitbutton']) {
            case
'toevoegen':
                // doe iets
                break;
            case
'verwijderen':
                // doe iets anders
                break;
        }
    }

?>
 
Koen B

Koen B

02/02/2007 16:45:00
Quote Anchor link
@Jonathan
Dat is wat Jan ook zei, dat werkt niet! Ik heb het nu 2 x geprobeerd door jou test letterlijk te kopieeren omdat ik misschien spel fouten had ofzo, maar deze werkt ook niet ....
 



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.