Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[HTML]Image buttons en PHP POST probleem

Pagina: 1
Acties:
  • 789 views sinds 30-01-2008
  • Reageer

  • degroot
  • Registratie: December 2003
  • Niet online
Ik zit met een klein probleempje , wat ik niet echt opgelost kan krijgen.

Op mijn formulier maak ik gebruik van 2 image buttons.
1 button moet de orginele submit button vervangen , en de andere moet een soort "ga terug" button worden.
Hiermee word door de formulieren heen genavigeerd.
Dat stukje ziet er zo uit
HTML:
1
2
<TD><input type="image" name="previous" onClick="javascript:history.back()" src="../gfx/btn_aanpassen.gif"></TD>
                    <TD><input type="image" name="next" value="Volgende Stap" src="../gfx/btn_verder.gif"></TD>


Echter word de submit opgevangen door PHP en dat gaat zo(action="<?php echo $_SERVER['PHP_SELF']; ?>" , dus staat op dezelfde pagina)
PHP:
1
if($_POST)


Het probleem is dus dat als ik 1 van beide knoppen indruk het formulier gepost word.
Dus als ik een stap terug wil , ziet het formulier toch dat er gesubmit word(en gaat dus een pagina verder dan een pagina terug)

Maar aan de image buttons worden geen waardes gehangen.
Daarmee bedoel ik dus dat ik dmv PHP niet kan controleren of er op Ga terug of op Submit is geklikt.
Want als ik
PHP:
1
print_r($_POST)

Doe , dan is die leeg.

Weet iemand hoe ik dit met image buttons wel zo op kan lossen?
Dmv een waarde aan de image buttons te geven o.i.d?

www.degroot-it.nl


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Natuurlijk kan dat.
PHP:
1
2
3
4
5
6
7
<?php 
print_r($_POST)
?>
<form method="post">
<input type="image" name="prev" value="prev" src="prev.png">
<input type="image" name="next" value="next" src="next.png">
</form>

Geeft gewoon:
code:
1
Array ( [prev_x] => 12 [prev_y] => 9 [prev] => prev )

bij het klikken op de knop "prev".

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Gebruik alsjeblieft gewoon een ge-css'de input type=submit ipv die input type=image... dat geeft alleen maar problemen :X

verder is het trouwens nog altijd
PHP:
1
if (!empty($_POST)) { // doejeding() }

Stop uploading passwords to Github!


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 09:32
Je moet in je onclick nog false returnen om de standaardactie van de submit te cancellen:
HTML:
1
<button onclick="history.go(-1); return false;">

Regeren is vooruitschuiven


  • degroot
  • Registratie: December 2003
  • Niet online
CodeCaster schreef op dinsdag 11 september 2007 @ 15:01:
Natuurlijk kan dat.
PHP:
1
2
3
4
5
6
7
<?php 
print_r($_POST)
?>
<form method="post">
<input type="image" name="prev" value="prev" src="prev.png">
<input type="image" name="next" value="next" src="next.png">
</form>

Geeft gewoon:
code:
1
Array ( [prev_x] => 12 [prev_y] => 9 [prev] => prev )

bij het klikken op de knop "prev".
Dat geeft dus bij mij een lege array terug

Ik had namelijk zelf al die values erin staan , alleen vergeten hier bij te zetten in dit thread

www.degroot-it.nl


  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 09:51
degroot schreef op dinsdag 11 september 2007 @ 14:57:
Ik zit met een klein probleempje , wat ik niet echt opgelost kan krijgen.

Op mijn formulier maak ik gebruik van 2 image buttons.
1 button moet de orginele submit button vervangen , en de andere moet een soort "ga terug" button worden.
Hiermee word door de formulieren heen genavigeerd.
Dat stukje ziet er zo uit
HTML:
1
2
<TD><input type="image" name="previous" onClick="javascript:history.back()" src="../gfx/btn_aanpassen.gif"></TD>
                    <TD><input type="image" name="next" value="Volgende Stap" src="../gfx/btn_verder.gif"></TD>
Je tag moet je trouwens even goed afsluiten...
HTML:
1
2
3
4
5
6
<td>
<input type="image" name="previous" onClick="javascript:history.back()" src="../gfx/btn_aanpassen.gif" />
</td>
<td>
<input type="image" name="next" value="Volgende Stap" src="../gfx/btn_verder.gif" />
</td>

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 09:32
MuddyMagical schreef op dinsdag 11 september 2007 @ 15:19:
Je tag moet je trouwens even goed afsluiten...
In HTML kent <input> geen sluittag.

Regeren is vooruitschuiven


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

degroot schreef op dinsdag 11 september 2007 @ 15:07:
[...]

Dat geeft dus bij mij een lege array terug

Ik had namelijk zelf al die values erin staan , alleen vergeten hier bij te zetten in dit thread
Dat kan niet. Staat je form-method wel op post?
T-MOB schreef op dinsdag 11 september 2007 @ 15:46:
[...]

In HTML kent <input> geen sluittag.
Dacht 't wel.

[ Voor 25% gewijzigd door CodeCaster op 11-09-2007 15:55 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Verwijderd

Je verwijst naar een bron over XHTML. XHTML is qua syntaxis de XML-serialisatie van HTML. Derhalve moeten alle tags in XHTML worden afgesloten.

In HTML zijn sluit-tags soms optioneel. Voor button is de sluit-tag volgens het W3C niet optioneel. Je hebt gelijk, maar je verwijst naar een irrelevante bron.

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 09:32
Niels Sijm schreef op dinsdag 11 september 2007 @ 16:06:Je hebt gelijk, maar je verwijst naar een irrelevante bron.
Het ging om <input>, niet om <button>. Verder is het hele geneuzel compleet off-topic.

TS moet gewoon z'n onclick goedzetten en voor de gebruiker zonder javascript een serverside redirect invoegen.

[ Voor 0% gewijzigd door T-MOB op 11-09-2007 16:14 . Reden: verkeerde link ]

Regeren is vooruitschuiven


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Om te beginnen zou ik een element dat enkel een javascript actie initieert ueberhaupt niet in de markup zetten maar unobtrusive toevoegen mbv scripting. Verder, als het geen submit-element mag zijn kies dan voor een element dat standaard geen dergelijke functionaliteit heeft. Een <img> lijkt me prima hier.

Last but not least: als de pagina waarnaar hiermee teruggegaan wordt ook al een onderdeel van het formulier was verwacht dan niet dat de browser nog weet wat de gebruiker daar had ingevuld, als dat wel van belang is dan zou ik het niet met javascript oplossen maar juist wel serverside (en dus wel gewoon een submit element gebruiken). In het andere geval zou een gewone anchor om een image ook voldoen.
Ergo: eigenlijk zou ik hier helemaal niet voor javascript kiezen...

Verder is een javascript: label nutteloos binnen inline eventhandlers, maar dat gaf de highlighter al aan.

En MuddyMagical: als het hier echt om XHTML had gegaan dan had jouw voorbeeld ook niet gewerkt, je event-attribuut had dan enkel lowercase moeten zijn geweest. Maar waarschijnlijk weet je niet eens wat nu precies een document echt XHTML maakt en wat niet (tipje: het heeft niets met de DTD te maken) ;)

[ Voor 7% gewijzigd door crisp op 11-09-2007 16:19 ]

Intentionally left blank


  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 30-11 17:18

glashio

C64 > AMIGA > PC

Wat ook een wel grappig is dat de 'onEnter' ( De toetsenbordknop 'Enter↵' ) gedrag bij een textbox in een formulier afwijkt bij browsers.
IE submit gewoon je formulier, terwijl bijv. firefox & opera de eerste submit element tiggert om te submit'en. Wat dus in dit geval een 'Back' oplevert terwijl je een 'Next' verwacht ;). Ik heb dit opgelost door eerst 'Next' te noemen en daarna 'Back' met een float:left erop.

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing

Pagina: 1