ugrás a tartalomhoz

Űrlap ACTION paraméterezése

zsoltimc · 2009. Dec. 25. (P), 13.11
Üdv mindenkinek, kellemes ünnepeket!

1 kérdésem lenne, nem vagyok nagy programozó :).

Van egy űrlapom, ami bekér
- egy nevet (name),
- egy mailcímet (mail),
- meg mondjuk select-el egy számot 1-5 között (szam).

Hogyan oldhatom meg, hogy a form elküldése után a paraméter után a kiválasztott szám kerüljön oda?
http://valami.hu/index.php?parameter=szam

Hogyan alakítsam át ezt a sort?

<form name="form1" method="post" action="http://valami.hu/index.php?parameter=szam">

Köszi a segítséget.
Zsolt
 
1

Elegánsan sehogy

Joó Ádám · 2009. Dec. 25. (P), 15.10
Ezt így csak JavaScripttel tudod megcsinálni: amikor változik a select értéke, akkor átírod az action-t. De ez egyáltalán nem szép, és a legkevésbé robusztus.

Gyakorlatilag egyszerre akarsz GET és POST kérést küldeni. Miért így csinálod, mi a feladat?
3

Nem baj, ha nem elegáns, csak működjön :)

zsoltimc · 2009. Dec. 25. (P), 20.04
Egy hírlevél szoftverbe akarom beilleszteni a nevet és az emailt.
5 csoport van, és fontos, hogy a felhasználó ki tudja váltani, melyik csoportba kerüljön, ezért az 1-től 5-ig.

A lényeg az, hogy az űrlap elküldése után megjelenjen a címsorban ez:
http://valami.hu/index.php?parameter=szam

Ahol a szám a felhasználó által 1-től 5-ig kiválasztott szám.

A szoftver mindenképp POST-ot akar...
<form name="form1" method="post" action="http://valami.hu/index.php?parameter=szam">
5

Az elegancia fontos

Joó Ádám · 2009. Dec. 25. (P), 21.53
Már csak azért is, mert mindig praktikus gyökereket rejt. Ha JavaScripttel csinálod, akkor kikapcsolt JavaScript mellett nem fog működni.

Nem teljesen értem, hogy miért nem tudod a POST változók közt átadni ezt is, de mi lenne akkor, ha az űrlap előtt választana linkek közül?

És használd a kódszínezőt, ha kódot másolsz be, mert különben morcosak lesznek az emberek.
2

get, post

nemalevi · 2009. Dec. 25. (P), 18.30
Mert szerintem nincs meg tisztaba vele, hogy mire valo a Get meg a Post. Ha post-tal kuldesz adatokat, akkor az actionba csak az index.php-t kell beirni, aztan a feldolgozas soran meg belerakod valtozoba.
$valtozo=$_POST['select_mezo_neve'];
4

Valóban nem tudom pontosan,

zsoltimc · 2009. Dec. 25. (P), 20.12
Valóban nem tudom pontosan, mi a különbség, de POST-ot kell használnom.

Nem tudom, illik-e ide bemásolni kódot, de berakom, és hátha tud valaki segíteni.
Eddig így néz ki, és az a lényeg, ha elküldöm az űrlapot, http://valami.hu/index.php?parameter=szam
A szám az a csoport, amit kiválaszt.

Ez megoldható így?

<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="http://valami.hu/index.php?parameter=csoport">
<table border="0" cellpadding="4" cellspacing="0">
<tr>
<td align="right" width="50%">Név:</td>
<td width="50%"><input type="text" name="name" />
</td>
</tr>
<tr>
<td align="right" width="50%">E-mail:</td>
<td width="50%"><input type="text" name="mail" />
</td>
</tr>
</table>
<p>
<select name="csoport" id="csoport">
<option value="1" selected="selected">Első</option>
<option value="2">Második</option>
<option value="3">Harmadik</option>
<option value="4">Negyedik</option>
<option value="5">Ötödik</option>
</select>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Submit">
</label>
</p>

</form>
</body>
</html>
6

tehát

a.d.a.m · 2009. Dec. 26. (Szo), 02.22
És használd a kódszínezőt, ha kódot másolsz be, mert különben morcosak lesznek az emberek.
Ez bizony így van!

Valóban nem tudom pontosan, mi a különbség, de POST-ot kell használnom.
Info itt, ittés itt. (Az utóbbi kettő angol nyelvű)

Ez megoldható így?
A kérdésedre a válasz: nem, az általad leírt módon nem működik a dolog. Ha mindenképp ragaszkodsz ehhez az elképzeléshez javascriptet kell használnod.
A kód valami efféle lenne:
function reAction() {
var ertek = document.getElementById('csoport').options[document.getElementById('csoport').selectedIndex].value;
document.getElementById('form1').action='http://valami.hu/index.php?parameter='+ertek;
}
A használata pedig:
<select name="csoport" id="csoport" onchange="reAction();">
Az alapértelmezetten kiválasztott csoport azonosítóját (1) érdemes a form action-jában default-ként szerepeltetni, pl: action="http://valami.hu/index.php?parameter=1"

Ez talán nem a legelegánsabb kód, de működik.

Ha jól értem egy valaki által már megírt alkalmazást akarsz használni a hírlevelek kiküldésére, ugyanakkor azt nem írtad, miben befolyásolja ezt a programot az, hogy te mit adsz át GET paraméterként, ha egyébként a nevet és az e-mail címet POST adatként várja. Vagy csak visszajelzésnek szánod a feliratkozó felé?
7

Köszi!

zsoltimc · 2009. Dec. 26. (Szo), 21.23
Köszönöm, megpróbálom így!
És bocsi a kódszinezőért :)