PHP checkbox post hogyan..?

PHP checkbox post hogyan..?
2015-05-23T12:50:06+02:00
2015-05-23T17:07:51+02:00
2022-12-02T13:10:43+01:00
Vikker
Sziasztok!

Előre leszögezném, hogy nem vagyok pro, és kérlek ti is így álljatok hozzám. Másnak lehet iszonyat egyszerű dolog, de én már komolyan vért izzadok a megoldás keresésével. Ezért is kérek segítséget plííííz... A helyez tulajdonképpen egyszerű lenne - gondolom - :D , de számomra mégsem az. Van egy HTML fájl.. tele sok szép táblázattal. Minden megy, ahogy mennie kell, textarea, rádiógombok, submit-tal el is küld mindent oda és úgy, ahogy szeretnék, csak ez a fránya checkboxos pipálgatással nem történik semmi.
HTML-ben így néz ki a történet:

<label><input type="radio" name="langtype" value="külföldi">külföldi</label> <br> <label><input type="radio" name="langtype" value="nem külföldi">nem külföldi</label> <br> <label><input type="checkbox" id="option1" name="option1" value="magyar">magyar</label> <br> <label><input type="checkbox" id="option2" name="option2" value="német">német</label> <br> <label><input type="checkbox" id="option3" name="option3" value="angol">angol</label> <br> <label><input type="checkbox" id="option4" name="option4" value="francia">francia</label>
eddig oké. jön a PHP-s rész:

alapesetben egy megadott mail címre kell küldeni a cuccot, hogy amiket kiválasztok (pl külföldi vagy sem, azt küldi, amit választottam), ez így van kiíratva:

<?php if(isset($_POST['email'])) { $email_to = "mintajanos@minta.com"; $email_subject = "üzenet jött az oldaladról!"; $email_message .= "<tr><td width='300'><strong><font color='#53A3A3'>Itt a kapott szöveg: </font></strong></td><td>".clean_string($langtype)."</td></tr>";
és így tovább, majd...

function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); }
a html-ben megadott táblázatoknál ugye vannak "name" határozók vagy mik, amik így vannak kiíratva php-ban pölö ennél a külföldis rádiógombnál a neve: "langtype":

$type = $_POST['langtype'];
és akkor megkapom, mit választott az illető az oldalon.
Viszont próbálnám a checkbox-ot is hasonlóképpen kiíratni, de nem megy.. :s

$nyelv = $_POST['option1'];
na most erre totál üresen küldi el mondanom se kell, próbáltam már többféleképpen is.. mondjuk így:

$nyelv = $_POST['option[]'];
persze a "[ ]" html-ben is mindegyik option mögött ez volt.. ekkor csak annyit írt ki a kapott üzenetben, hogy "Array".... vagy másképpen volt is próba, akkor elküldte, de akkor meg csak az utolsó pipáltat küldte el, és ha több lehetőséget jelöltem be, akkor nem reagálta le.

Szóval ha kérhetem, hogy valaki kicsit segítsen, hogyan tudnám a PHP-ban megadni, hogy a választott értékeket küldje el üzenetben? Nem kell nekem semmi kacinfántozás, egy totál egyszerű dolog lenne csak az elképzelés.. 4 checkbox közül amit kijelölök, azt küldje el a MintaJános gmail címére a többi cuccal együtt...

Előre is köszönöm, ha valaki kicsit is foglalkozik a kérdésemmel, és hajlandó volt végigolvasni ezt a szöveget!
Mutasd a teljes hozzászólást!
Uhh.. hááát ... nem gondoltam volna, hogy véletlenül belebotlok.. De végülis sikerült megoldani... egy angol oldalon találtam rá nagyjából erre a kódra, megpróbáltam bejött.. Szóval ez működő megoldás, nálam most megy!!! Köszönöm a segítségeket, és a rám szánt időt!
Kirakom, hátha legközelebb valakinek esetleg kellhet szóval a példát nézve:

Példa:

<form action="index.php" method="post"> <input type="checkbox" name="language[]" value="magyar" />magyar<br /> <input type="checkbox" name="language[]" value="német" />német<br /> <input type="checkbox" name="language[]" value="angol" />angol<br /> <input type="checkbox" name="language[]" value="francia" />francia<br /> <input type="submit" value="send" /> </form>
a PHP-ba ez jönne:

$nyelv= implode(", ", $_POST['language']);
majd... :

$email_message .= "a bejelölt nyelv:".clean_string($nyelv).";
köszi még1x!
Mutasd a teljes hozzászólást!

  • Példa:
    <form action="index.php" method="post"> <input type="checkbox" name="language[]" value="magyar" />magyar<br /> <input type="checkbox" name="language[]" value="német" />német<br /> <input type="checkbox" name="language[]" value="angol" />angol<br /> <input type="checkbox" name="language[]" value="francia" />framcia<br /> <input type="submit" value="send" /> </form> PHP: foreach($_POST['language'] as $value) { echo 'bejelölve: '.$value.' '; }
    --[szerk kimaradt a radiobox
    <Input type = 'radio' name ='tipus' value= 'külföldi'> .... $_radio = $_POST['tipus']; print $_radio;
    Mutasd a teljes hozzászólást!
  • Szia!

    Igazából ez a részlet fontos "csak" nekem, ezt be is raktam PHP-ba:

    foreach($_POST['language'] as $value) { echo 'bejelölve: '.$value.' '; }
    Ez működik is, csak félig-meddig. miután kitöltöttem az adatokat, amiket kipipáltam checkbox-ban, ki is írja szépen a küldés utáni lapra, csak mailben nem küldi tovább..

    Ha a te példádat nézem akkor a beírt értékeket így küldené tovább nekem mail-be:

    $nyelv = $_POST['language'];
    a "nyelv"-el...
    valahogy így:

    $email_message .= "a bejelölt nyelv:".clean_string($nyelv).";
    mert nekem csak mail-be kéne post-olni utána ahogy írtad nem kell print,. Csak bárhogy variálom a post utáni dolgokat akkor se jön semmi.. lehet rossz helyen tapogatózok.
    Mutasd a teljes hozzászólást!

  • foreach($_POST['language'] as $value) { $nyelv = $value; } $email_message .= "a bejelölt nyelv:".clean_string($nyelv).";
    Mutasd a teljes hozzászólást!
  • Ez már kezd alakulni, csak az a baj, hogyha 4-ből mondjuk 3-at kijelölök, mindig csak az utolsót küldi el...

    Egyszerűen nem tudom miért...
    Mutasd a teljes hozzászólást!
  • Uhh.. hááát ... nem gondoltam volna, hogy véletlenül belebotlok.. De végülis sikerült megoldani... egy angol oldalon találtam rá nagyjából erre a kódra, megpróbáltam bejött.. Szóval ez működő megoldás, nálam most megy!!! Köszönöm a segítségeket, és a rám szánt időt!
    Kirakom, hátha legközelebb valakinek esetleg kellhet szóval a példát nézve:

    Példa:

    <form action="index.php" method="post"> <input type="checkbox" name="language[]" value="magyar" />magyar<br /> <input type="checkbox" name="language[]" value="német" />német<br /> <input type="checkbox" name="language[]" value="angol" />angol<br /> <input type="checkbox" name="language[]" value="francia" />francia<br /> <input type="submit" value="send" /> </form>
    a PHP-ba ez jönne:

    $nyelv= implode(", ", $_POST['language']);
    majd... :

    $email_message .= "a bejelölt nyelv:".clean_string($nyelv).";
    köszi még1x!
    Mutasd a teljes hozzászólást!
  • $nyelv = ''; $i = 0; foreach($_POST['language'] as $value) { if(!$i){ $nyelv = $value; }else { $nyelv .= ", ".$value; } $i++; } $email_message .= "a bejelölt nyelv:".clean_string($nyelv).";
    Szerk.: jah hát végülis implode egyszerűbb, lényegében ugyan azt csinálja mint az én kódom. Na de az azért durva, hogy a saját "megoldásod" fogadtad el :D Még véletlenül sem az előttem írók adtak helyes megoldást, amit ha egy csöppet is utána nézel, fél perc alatt atírhatod olyanra, hogy neked jó legyen. Nekem végülis mindegy, így se úgy se én adtam volna a jó megoldást, mert beelőztek...
    Mutasd a teljes hozzászólást!
  • Bocs. Nem volt semmi rossz indulatú szándékom azzal, hogy elfogadtam. A többiekét is "hasznosnak értékeltem" volna, de nem tudtam, mert nem engedte.. Két lehetőséget adott, hogy vagy törlést kezdeményezek, vagy pedig "megoldásként elfogadom"... nem volt semmi hátsó szándék, csupán mivel meglett a megoldás, és láttam már jópár hasonló fórumot, ahol hasonló problémák voltak, gondoltam hátha jó lesz valakinek segítségnek.. később... és ezért nem akartam töröltetni..
    A kódok fejtésében nem vagyok otthon, nekem nagyon nem volt semmi egyértelmű, hogy pikk-pakk átírhatom, lényegében mindenkié hasznos volt, de nem vezetett megoldásra.
    már több napja próbálok valamit összehozni, keresgélni, utánaolvasni, de csak most jutottam el odáig, hogy segítséget is kérek. Nyilván nem adom fel, és keresgéltem folyamatosan.. és totál véletlenségből bukkantam rá egy jó megoldásra.
    Szóval, bocsesz, én nem tudom hogy működik itt a rendszer, csak annyit tudok róla, hogy itt, ezen az oldalon legalább segítenek, ha kér az ember valamit. Ahogy a példa is mutatta! Szóval így is még egyszer megköszönöm a segítségeteket, ha tudnám honorálnám valahogy, de pusztán csak a "jó" megoldás végett pipáltam ki, hogy mi az ami nekem működött....
    De köszönöm neked is a rám szánt idődet, és hogy foglalkoztál a témával!
    Mutasd a teljes hozzászólást!
  • Én csupán azt nem értem, hogy ha valaki email küldést csinál PHP-val, akkor... Nem nem is, rosszul indultam neki. Szóval, miért nem az alapoktól kezdi el valaki tanulni a nyelvet? Az email küldés egyáltalán nem tartozik az alap dolgok közé. Ráadásul ha csak a sima mail() fuggvenyt használod alap beállításokkal akkor biztos lehetsz benne, hogy nem fog működni majd. Én most nem lemondani akarlak, mindenkinek kezdenie kellett a nulláról anno. Én csak azt mondom, hogy ez a feladat, amit írtam, hogy a kapott megoldásokból át kellett volna tudni írni, ez még egy kezdőnek is kéne, hogy menjen.  Nekem ebből az szűrődött le, hogy meg akarsz csinálni egy "bonyolult" feladatot úgy, hogy semmit nem értesz hozzá. Mintha én össze akarnék szerelni egy forma 1-es autót úgy, hogy szinte semmit nem tudok a működéséről. És csupán azt nem értem, miért vállalkozik valaki ilyen feladatra ilyen esetben. Ha tanulni akarsz, miért nem máshol kezded? Ha nélkülözhetetlen a feladat megoldása akkor meg miért nem kérsz segítséged a komplett feladat megírására egy képzettebb embertől? Ha már valaki rendelkezik egy bizonyos szintű tudással programozás terén, az meg tud írni olyan kódot is, amit még soha nem írt azelőtt, mert tudja mit hogyan keressen a neten érted. De ehhez kell egy szint, ami neked még láthatóan nincs meg. El kéne olvasni legalább az alap dolgokat egy könyvből vagy tutorialokból. Még egyszer mondom, nem akarlak én bántani, mindenki a nulláról kezd tanulni, csak nem értem ezt az egészet.
    Mutasd a teljes hozzászólást!
  • Nagyon alap szinten értek a dolgokhoz... -- ezek szerint alapabbnál is alapabb szinten... :D na de mindegy valami azért megy -- egyszerű a magyarázat. Nem egy nagy dolgot akarok itt véghez vinni. Első nekifutásból indulva. Ismerős megkérdez, (((aki ezzel foglalkozik és mondhatni rá szakember))) oké megnézem, megcsinálom mondja... Nem ingyen kértem hozzáteszem.. Az ember egy ideig türelmes, aztán elmegy máshoz.. Ott is türelmes, de ha semmi sem megy, akkor nekiáll magától. Lehet másnak is, mint neked, ez tényleg pitiáner dolog, nekem nem, mert nem tudom kirázni a kisujjamból. Keresgélek, utánaolvasok, magyarul, angolul, kulcsszavak, mi kell nekem stb... Mondom, nem nagy dolgokat akartam egy teljesen egyszerű kis táblázat, amit kitöltesz, elküldöd, mailbe, nekem. Ennyi. Semmi pénzszerzés, semmi komoly dolog. Szóval lehet az alapoktól kellene kezdeni, meg olvasgatni, de mikor én nem akarom ezt az egész szakmát elsajátítani, és tényleg nem akarom tudni, hogy mi miért mit csinál, és hogyan lehet millióféleképpen leprogramozni 1001 dolgot, ezért éppen elég az, ha ezt megcsinálom és kész. Nem kell több. Tudom, ha el akarsz kezdeni valamit, mondjuk házat építeni ne a tetővel kezd.... Találtam egy kódot, ami nagyjából "bevezet" a rejtelmekbe, nekem bőven megfelelt, többé-kevésbé képbe is kerültem már addigra hozzá, hogy tudjam mi micsoda, ott ahol van, csak 1 "apróság" maradt ki.. Pont ez. Oké ez is meglett. Megkérdezheted mit jelent ez a "parancs", amit oda kellett biggyeszteni, de nem fogom tudni megmondani. De megvan, megy, működik.. És ennyi.. Ennyi nekem bőven elég, nem szeretnék ennél jobban belemélyedni a dolgokba, itt kifújt a történet. Megoldódott az a dolog, amit már több embertől is kértem, aki elvileg "majd ránézek" szöveggel mindig lerázott. De mivel kellett, ezért kénytelen voltam a semmi tudásomból valahogy kifejteni a lényeget, vagy valamit, ami megy. De lényegében meglett, szóval nem akarom túlragozni.. Tudom amúgy mindenki azzal kezdi, hogy menjek szakemberhez, ha nem értek hozzá, majd megcsinálja.. Csak lehet a kis apróságok nem érdekli a "szakembereket", csak a komolyabb, húzósabb dolgok. És nyilván nehéz ügy az egész, mert aki ért hozzá és segítene is, annak meg nehéz egy full kezdőnek segíteni. Más helyett meg nyilván nem akar senki se dolgozni vagy az egészet megcsinálni. Szóval eléggé patt helyzet. Így marad az, amit tudok kimatekozok, aztán ami nem megy, ahhoz kérek segítséget. Azért amit megcsináltam magamnak arról már van némi fogalmam azért. Nyilván ki kellett szenvedni. Túl ragozni nem akarom ezt a választ se.. :D De találtam egy kódot, kicsit elvettem belőle, kicsit hozzáraktam és kijött az, ami nekem jó lett. :) És itt kimerült a programozási pályafutásom.. :) Ami persze el se indult ... :D
    Mindenesetre attól függetlenül, hogy ez egy nagyon-nagyon nem egyszerű téma, és tényleg sok tanulással megy csak, én mint full amatőr, már sok helyen néztem, olvasgattam, kértem segítséget, de az esetek többségében mindig elzavarják az embert, egyedül itt a Prog-on látom csak, hogy vannak segítőkész emberek, akik próbálnak segíteni... :) És ebből, mindig egy kicsit azért tanul az ember.. Na de erről ennyit.. Jah.. és nyugi nem sértettél meg, vagy bántottál... :) Most ez működik, nem tudom meddig vagy hogyan lehet az egész kóddal vannak bajok, de ha egyszer valami oknál fogva bemondja az unalmast, akkor majd megint jövök! :D lehet kicsit több tudással, de szerintem nekem ez bőven elég is volt! ;)
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd