Formularz - wysyłanie innych parametrów w zależności od przycisku, bez js

0

Witam.

Ostatnio główkuję nad jednym problemem (być może dość sztucznym ale zawsze). Mamy formularz html, zawiera on kilka przycisków, pól itp. W zależności od wciśniętego przycisku chcemy przesłać kilka innych danych np. po wciśnięciu submit 1, chcemy wysłać też jeden lub więcej parametrów przydzielonych tylko do tego submita. Analogicznie z pozostałymi przyciskami. W przypadku innych submiów były by inne parametry. Czy coś takiego da się zrobić bez js?
Ostatecznie czy dało by się zrobić submita z wyświetlaną wartością inną niż value (tz wysyłać i wyświetlać inną wartość)?

0
<pre>
<form method="post" action="">
	<input name="test" value="666" />
	<input name="test2" value="666-2" />
	<br />
	<input type="submit" name="submit1" value="wyslij 1" />
	<input type="submit" name="submit2" value="wyslij 2" />
</form>
<?php
print_r($_POST);
?>
</pre>

wrzuć to sobie do pliku php i przetestuj.

Nie spowodujesz drugim submitem, że wartość nie będzie wysłana (chyba, że z domieszką javascriptu) - ale po stronie serwera sprawdzisz, który submit został naciśnięty - więc tam odrzucisz niepotrzebne wartości. (Uwaga! Zauważ, że po wciśnięciu "enter" będąc w polu formularza zawsze będzie wywoływany pierwszy przycisk submit).

0

Tylko cały mój problem polega na tym że w zależności od przycisku chcę aby tak samo nazwane pola miały różne wartości. Nie chcę tracić pozostałych danych z formularza.

Np.
Mam jeden formularz z listą elementów. Po wciśnięciu delete przy danym rekordzie chcę go usunąć. Czyli muszę przesłać informację o id rekordu i akcji delete. Ale nie chcę tracić informacji o stronie na jakiej się znajduję czyli ją też muszę przesłać. Wszystkie informacje mają być przesłane metodą POST. Da się to zrobić?

0

Hm. Możesz nazwać swoje inputy o tak: delete_id_23, delete_id_24, delete_id_25 czy podobnie - potem po stronie serwera lecisz wszystkie wartosci POST, sprawdzasz czy klucz pasuje np. wyrażeniem regularnym /^delete_id_([0-9]+)$/ i jak tak to wykonujesz akcje itd.

0

Też o tym myślałem ale wydaje mi się to piekielnie mało wydajne podejście. Jak sądzisz lepiej to rozbić sztucznie na dużo małych formularzy i powtarzać część danych czy robić takie skanowanie parametrów?

Ps. nie korzystam z PHPa ;)

0

Przypasowanie regularne 100 stringów wbrew temu jak to brzmi nie jest takie wybitnie powolne.
Nie wiem czy możesz to rozbić na dużo małych formularzy.
Nie znam szczegółów, więc musisz sam się zastanowić czy warto poświęcać na to czas, czy lepiej "obciążyć" cpu, czy może łącze (duży kod html) itd

Ps. Teraz Ci się przypomniało, jak ja o PHP w poprzednim poście? ;)

0

Dochodzę do wniosku że dużo bardziej opłaca się poświęcić trochę czasu cpu. i kod będzie bardziej przyjazny. Szkoda że html ma aż tak duże ograniczenia :/
Dzięki za pomoc.

A co do PHP to już post wcześniej chciałem napisać ale zapomniałem :D

0

Html raczej nie ma ograniczeń. Szkoda, że w ogóle trzeba się ograniczać z javascriptem, który jest fajnym uzupełnieniem pod aplikacje na www.

1 użytkowników online, w tym zalogowanych: 0, gości: 1