[JS/PHP] Form met 2x submit => onclick met name + submit

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Wiethoofd
  • Registratie: Juli 2007
  • Laatst online: 14-08 12:22

Wiethoofd

Broadcast TOM

Topicstarter
Ik heb nu een form met 2x een submit button, mocht je echter wat wijzigen in het onderste gedeelte en submitten met een enter dan pakt elke browser de eerste submit-knop die ze in het form tegenkomen.

Nu start ik juist de 2e afhandelingsstap door op de name van de eerste submitknop in het form te checken. Nu wou ik de eerste submit knop door een <input type="button"> met een onclick actie laten submitten, dit gaat verder prima, behalve dat de name en/of value van die knop niet meer doorgezet worden naar het php-script wat alles afhandelt.

Ik heb met m'n zeer beperkte javascript kennis van alles zitten proberen, maar ik krijg de name van m'n input niet doorgezet, een name op m'n tweede submitknop checken en daarop checken werkt ook niet (lees: verre van) optimaal. Googlen op een oplossing om via een javascript submit de name of value door te zetten levert niets op.

HTML:
1
<input type="button" name="bestel" onclick="this.form.submit();" value="Plaats bestelling">

Volg me op Twitter/X & Bluesky


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Even terug naar je origineel probleem. Ik kan hier nu even niet testen, maar kan je misschien wat met fieldset?

En daarnaast weet ik even niet wat je precies met javascript wilt ophalen? Zeg maar dit gedeelte snap ik ff niet:
maar ik krijg de name van m'n input niet doorgezet, een name op m'n tweede submitknop checken en daarop checken werkt ook niet (lees: verre van) optimaal

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Wiethoofd
  • Registratie: Juli 2007
  • Laatst online: 14-08 12:22

Wiethoofd

Broadcast TOM

Topicstarter
Met een
HTML:
1
<input type="submit" name="bestel" value="Plaats bestelling">
krijg ik:
PHP:
1
echo $_POST['bestel']; // Plaats bestelling

Doe ik echter de onclick="submit()" of this.form.submit() dan krijg ik geen $_POST['bestel'] om m'n afhandeling mee te triggeren. Ik wil dus dat die name="bestel" gePOST wordt.

Volg me op Twitter/X & Bluesky


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Misschien moet je dan ff een completere testcase aanmaken, want 't volgende werkt gewoon bij mij:

HTML:
1
2
3
4
<form id="lunchform" name="lunchform" action="processor.php" method="post">
    <input type="submit" value="Submit Lunch1" name="BtM909" onclick="formSubmit();">
    <input type="submit" value="Submit Lunch2" name="BtM303" onclick="this.form.submit()">
</form>


waarbij de eerste onclick een apart validatiefunctie is en de tweede direct de submit.

De processor.php geeft gewoon netjes terug:
PHP:
1
print_r($_POST);


code:
1
2
3
Array ( [BtM909] => Submit Lunch1 )
of
Array ( [BtM303] => Submit Lunch2 )

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 24-09 16:06
Een
HTML:
1
<input type="submit">
wordt door het form ook gezien als een input.
Een
HTML:
1
<input type="button">
wordt niet gezien als input.

Als je met de onClick event de form submit met de button, dan moet je dat dus handmatig aan het formulier toevoegen. Bijvoorbeeld door een hidden field invullen, het aanpassen van de URL, of gebruikmakend van één van de vele javascript libraries die er zijn.

Bijvoorbeeld:
HTML:
1
2
3
4
5
<form>
  <input type="hidden" name="myinput" value=""/>
  <input type="button" onclick="this.form.myinput.value='avalue'; this.form.submit();">submit1</input>
  <input type="submit">submit2</input>
</form>

let the past be the past.


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ik ging ervanuit dat de button een workaround is / was nav. de javascripting (wat dus niet nodig is :))

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Wiethoofd
  • Registratie: Juli 2007
  • Laatst online: 14-08 12:22

Wiethoofd

Broadcast TOM

Topicstarter
Ik had de button gedaan ipv de submit om de 'submit on enter' de enige echte submit onderin het form te pakken en dus niet de afhandeling te triggeren als er nog wijzigingen doorgevoerd waren.

Handmatig een value toevoegen had ik ook al geprobeerd, maar deze kwam dus ook niet door.

Volg me op Twitter/X & Bluesky


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Heb je al naar fieldset gekeken? Helpt dat?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Wiethoofd
  • Registratie: Juli 2007
  • Laatst online: 14-08 12:22

Wiethoofd

Broadcast TOM

Topicstarter
Heb nu de oplossing van SPee gebruikt, een hidden input met een name die m'n bestel-actie niet triggered bij de submit via enter of de <input type="submit"> maar bij een onclick op de button van name veranderd wordt naar 'bestel' en vervolgens het form submit.

De opmerking dat een type="button" niet als input gezien wordt en dus geen name/value doorzet naar de afhandeling was mij onbekend.

Volg me op Twitter/X & Bluesky

Pagina: 1