Form action választás rádiógombokkal?
Lenne egy űrlapom amiben 2 rádiógomb van elhelyezve, 2 input mező és egy submit gomb. Azt szeretném elérni hogy a küldés gombra kattintva a bekapcsolt rádiógombtól függően más-más .php fájlra hivatkozzon.
Tehát a formon belül
1-es rádiógomb esetén -> action="1.php"
2-es rádiógomb esetén -> action="2.php"
Valakinek valami egyszerű, elegáns megoldása lenne erre?
Szerintem ezt csak javascripttel tudod megcsinálni, pl így:
<html>
<body>
<form id="form1" action="1.php">
<input type="radio" name="r1" value="v1" checked onclick="document.getElementById('form1').action='1.php'">
<input type="radio" name="r1" value="v2" onclick="document.getElementById('form1').action='2.php'">
<input type="submit">
</form>
</body>
</html>
Ha még aktuális, én ha lehet nem használok js.t mert sokszor levannak tiltva pl. céges környezetben stb... Szal ha lehet akkor server slideon megoldani, erre egy pár soros megoldás van a php-s megoldás le írom én is aztán majd döntesz.
Ebben is csak annyi jsvan ami hogy ha tiltva is van akkro is müködik gyakorlatilag annyit csinál hogy ha rá katt akkor elposztolja magát, hogy ha ez nem kell kiveszed. A feldolgozást úgyan az 1 v. 2 php végzi és ha ezzeken belül is van esetleg header(); parancs akkor az ism egy mert nem kap html kimenett sehol. Én sztem ez a megoldás ellegánsább de hát döntsd el te magad! :)
ime a kód:
<?php
if(isset($_POST['radio_gomb1']) or isset($_POST['radio_gomb2']))
{
if($_POST['radio_gomb1'])
{
//1_gombot válaszotta ide jöhet feldolgozás vagy tovább küldés
include ("1.php");
}
else if($_POST['radio_gomb2'])
{
//2_gombot válaszotta
include ("2.php");
}
}
else {
?>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"></head>
<body>
<FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="proba" id="proba">
<label>1es rádió gomb: <input type="radio" name="radio_gomb1" onClick="document.proba.submit()"></label><br />
<label>2es rádió gomb: <input type="radio" name="radio_gomb2" onClick="document.proba.submit()"></label><br />
<button type="submit">Küldés </button>
</FORM>
<body>
</html>
<?php } ?>
Első vagyok. Sztem is elegánsabb a szerver oldali feldolgozás, de pont az ami a kérdésben szerepel nem teljesül, hiszen form egy közös oldalra submitálódik el. Lehet hogy az 1.php és a 2.php nem egy szerveren van, ekkor pedig nem igazán lehet megcsinálni a második megoldást legfeljebb egy HTTP redirect-tel, ami plusz 1 roundrtip, és növeli a válaszidőt.
Ha tényleg 1 és saját szerveren vannak a megadott oldalak, akkor szerver oldalon irányítsd el. Vagy pedig 2 formot rakj az oldalra, 2 gombbal, akkor nem kell radiobutton/javascript.
a fellötem lévőnek. Jójó így abszolult igazad van megse fordult a fejembe hogy nem azzon a szerveren van. :-D úgy valóbban az a jó amit te írtál.
üdv
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!