Formulier met meerdere buttons

Pagina: 1
Acties:

  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 04-08 13:44

Shift

[] Dual crazy []

Topicstarter
Hi,

Ik heb één formulier op de website die meerdere submit-buttons bevat, de button functies worden opgevangen met PHP als;

if($_POST["Submit"] == "Eenknop")

Ik heb bijvoorbeeld 2 zoek velden met zijn eigen button (Zoek en Zoeken, alleen als ik op de 2e zoek veld iets in type en dan enter druk dan wordt de eerste zoek button actief, hoe kan ik zorgen dat de button van desbetreffende veld gesubmit wodt als er enter wordt gedrukt ? Ik wil gebruik maken van een formulier, met 2 forumulieren kan je het wel doen maar dat is bij mij geval niet zo.
Iemand idee ?

(Ik dacht zelf aan dit; Misschien kan ik met javascript de button laten focussen als ik op bepaalde veld klik om wat in te voeren, maar java is niet mijn sterkste kant :()

[ Voor 16% gewijzigd door Shift op 03-09-2003 09:34 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Dat gaat niet. Een formulier handelt dit zelf af en neemt (afhankelijk van de browser dus) een van de submitknoppen en maakt deze default.

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

crisp

Devver

Pixelated

Je kan natuurlijk met javascript wel vanuit een veld kijken of er op enter is gedrukt :)

edit: waarom gebruik je niet gewoon 2 formulieren?

[ Voor 24% gewijzigd door crisp op 03-09-2003 09:44 ]

Intentionally left blank


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 23:40

RM-rf

1 2 3 4 5 7 6 8 9

met het TABINDEX-attribuut kun je ook de volgorde van de submitbuttons regelen, de submit met laagste tabindex wordt gesubmit.

als je dit wilt wisselen bij bepaalde userhandelingen, zoals de focus op een specifiek veld moet je dat wel via javascript doen

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 04-08 13:44

Shift

[] Dual crazy []

Topicstarter
Omdat ik meerdere buttons heb in verschillende paginas, anders moet ik heleboel formulieren aanmaken.
RM-rf schreef op 03 September 2003 @ 09:49:
met het TABINDEX-attribuut kun je ook de volgorde van de submitbuttons regelen, de submit met laagste tabindex wordt gesubmit.

als je dit wilt wisselen bij bepaalde userhandelingen, zoals de focus op een specifiek veld moet je dat wel via javascript doen
Jah dat is wat ik bedoel alleen ik heb geen bal verstand van java, waar kan ik daarover meer vinden ?

[ Voor 70% gewijzigd door Shift op 03-09-2003 09:50 ]


  • cutter
  • Registratie: November 2000
  • Laatst online: 28-09-2025

cutter

Wannabe i7 fanboy

http://www.google.nl/sear...=UTF-8&oe=UTF-8&hl=nl&lr= het is javascript da's iets anders dan java :)

  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 04-08 13:44

Shift

[] Dual crazy []

Topicstarter
Tabindex is toch niet het goede, die veranderd allen de tab volgorde :(

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Wat crisp zegt.. gebruik gewoon meerdere formulieren :) Das afaik de enige manier om meerdere default submits te hebben.

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Je kan ook controleren welke knop gedrukt wordt, met onkeypressdown.. Kijken in welk textvlak iemand geschreven heeft, en dan de goede submit uitvoeren..

Is wel iets meer code, maar dat is precies wat je wilt..

  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 04-08 13:44

Shift

[] Dual crazy []

Topicstarter
De probleem is dat mensen lui zijn om desbetreffende knop te klikken ze drukken op enter als ze wat getypt hebben, omdat er meerdere buttons zijn wordt er een andere actie uitgevoerd.

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

crisp

Devver

Pixelated

Je hebt dan sowieso een probleem omdat de value van een submitbutton in IE niet meegestuurd wordt als het formulier met enter gesubmit wordt ;)

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

crisp schreef op 03 September 2003 @ 11:15:
Je hebt dan sowieso een probleem omdat de value van een submitbutton in IE niet meegestuurd wordt als het formulier met enter gesubmit wordt ;)
Precies.. dat is ook zo'n beetje de meest foute methode die je kan nemen om te kijken hoe/of een formulier gesubmit is. Beter is een hidden formfield te maken en daarin je 'actie' te definieren en in je verwerkpagina te controleren op method (GET/POST).

In dit geval zou ik dus gewoon meerdere formulieren maken echter :) Dat is nu vaak genoeg gezegd denk ik :)

[ Voor 4% gewijzigd door Bosmonster op 03-09-2003 11:29 ]


  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 04-08 13:44

Shift

[] Dual crazy []

Topicstarter
Jah, da's bale, ik moet nu een giga site aanpassen :(

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Als je hierdoor een 'giga'-site helemaal moet aanpassen heb je IMO niet goed over het ontwerp / de technische haalbaarheid nagedacht. :{
Het is gewoon of een enorm geklooi met javascript, of meerdere formullieren. Anders kan niet.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 04-08 13:44

Shift

[] Dual crazy []

Topicstarter
Jah, daar ben ik weer :) Ik heb nui meerdere formulieren togepast en wat denk je? Het werk nog steeds niet :( Alles voor niets kan je wel zeggen hebben jullie nog een andere idee?

Een voorbeeld paginaatje om meerdere formulieren uit te proberen, als ik in een textfield klik en dan enter druk wordt nog steeds de submit waarde niet mee verstuurt.

code:
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
<?
if($_POST["Submit"] =="A")
{
    echo $_POST["textfield"];
}
if($_POST["Submit"] == "B")
{
    echo $_POST["textfield2"];
}
if($_POST["Submit"] == "C")
{
    echo $_POST["textfield3"];
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td height="494"><form name="form1" method="post" action="">
        <input type="text" name="textfield">
        <input type="submit" name="Submit" value="A">
      </form>
    </td>
    <td><form action="" method="post" name="form2">
        <input type="text" name="textfield2">
        <input type="submit" name="Submit" value="B">
      </form></td>
    <td><form name="form3" method="post" action="">
        <input type="text" name="textfield3">
        <input type="submit" name="Submit" value="C">
      </form></td>
    <td>&nbsp;</td>
  </tr>
</table>

</body>
</html>

[ Voor 54% gewijzigd door Shift op 10-09-2003 09:52 ]


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

crisp

Devver

Pixelated

Shift schreef op 09 September 2003 @ 17:16:
[...]
Een voorbeeld paginaatje om meerdere formulieren uit te proberen, als ik in een textfield klik en dan enter druk wordt nog steeds de submit waarde niet mee verstuurt.
[...]
crisp schreef op 03 September 2003 @ 11:15:
Je hebt dan sowieso een probleem omdat de value van een submitbutton in IE niet meegestuurd wordt als het formulier met enter gesubmit wordt ;)
Kortom: als je iets nodig hebt om in je serverside script te bepalen welk form gesubmit was, zet dan een hidden veld in je form om het te identificeren...

Intentionally left blank


  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 04-08 13:44

Shift

[] Dual crazy []

Topicstarter
Kortom: als je iets nodig hebt om in je serverside script te bepalen welk form gesubmit was, zet dan een hidden veld in je form om het te identificeren...
Leuk gezegd, de probleem is dat er geen enkel post waarde verstuurt wordt. Ookal zou je een hidden veld aanmaken hoe wil je die dan uitlezen ? de waardens worden niet verstuurt namelijk?

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

crisp

Devver

Pixelated

Shift schreef op 10 September 2003 @ 09:42:
[...]


Leuk gezegd, de probleem is dat er geen enkel post waarde verstuurt wordt. Ookal zou je een hidden veld aanmaken hoe wil je die dan uitlezen ? de waardens worden niet verstuurt namelijk?
Je hebt ook helemaal geen action in je forms staan?

Intentionally left blank


  • Shift
  • Registratie: Augustus 2000
  • Laatst online: 04-08 13:44

Shift

[] Dual crazy []

Topicstarter
Je hebt ook helemaal geen action in je forms staan?
Ik hoef daar niets in te vullen omdat de actie opgevangen word in de zelfde pagina.

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

crisp

Devver

Pixelated

Shift schreef op 10 september 2003 @ 09:51:
[...]


Ik hoef daar niets in te vullen omdat de actie opgevangen word in de zelfde pagina.
De action property is verplicht, en moet een geldig URL bevatten. Je kan in je script $_SERVER['PHP_SELF'] daarvoor gebruiken.

Voorbeeldje:

PHP:
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
<title>Whichform?</title>
</head>
<body>
<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

  $whichform = isset($_POST['whichform'])? $_POST['whichform']:'';

  switch ($whichform) {

    case 'A':
      echo 'Submitted form: '.$whichform.'<br />';
      echo 'textfield1: '.$_POST['textfield1'].'<br /><br />';
      break;

    case 'B':
      echo 'Submitted form: '.$whichform.'<br />';
      echo 'textfield2: '.$_POST['textfield2'].'<br /><br />';
      break;

    case 'C':
      echo 'Submitted form: '.$whichform.'<br />';
      echo 'textfield3: '.$_POST['textfield3'].'<br /><br />';
      break;

    default:
      echo 'WTF?<br /><br />';

  }

}

?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  Form A
  <input type="text" name="textfield1" />
  <input type="submit" value="GO!" />
  <input type="hidden" name="whichform" value="A" />
</form>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  Form B
  <input type="text" name="textfield2" />
  <input type="submit" value="GO!" />
  <input type="hidden" name="whichform" value="B" />
</form>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  Form C
  <input type="text" name="textfield3" />
  <input type="submit" value="GO!" />
  <input type="hidden" name="whichform" value="C" />
</form>
</body>
</html>

[ Voor 72% gewijzigd door crisp op 10-09-2003 10:17 ]

Intentionally left blank

Pagina: 1