ugrás a tartalomhoz

Checkbox -> automata

MSzilveszter · 2006. Már. 13. (H), 17.34
Sziasztok!

Azon gondolkoztam, hogy mi módon tudnák egy while() által generált checkbox hegyből a submit után a másik fájlban küldözgetni leveleket a checkbox változója alapján.

Konkrétan:

file1.php legyártja adatbázis alapján a checkboxokat, és a levél tárgya és szövege mezőt, majd a submit megnyitja a file2.php -t , amiben pedig a file1.php ban kipipált személyeknek kellene elküldeni egy egy levelet.
Természetesen a file1.phpban nem akarom megadni value - ként az email címet, hisz épp az a lényeg, hogy ne láthassa senki azokat (forráskódban sem).

Van valami ötletetek? Mert amiket én próbálkoztam eddig, az mind mind kudarcba fulladt.

Köszönöm a segítséget!

Szilveszter - NetNap.hu
 
1

Egyszeru>?

Anonymous · 2006. Már. 13. (H), 19.19
Ha tombkent hivatkozol ra, mondjuk valamilyen szamszeru id-vel, ket masodperc egy ilyen feladat:
  1. <input type='checkbox' name='ezegytomb[1]>  
  2. <input type='checkbox' name='ezegytomb[2]>  
  3. <input type='checkbox' name='ezegytomb[3]>  
...
  1. <?php  
  2. $HTTP_GET_VARS['ezegytomb'] == array(  
  3. "1" => "checked, vagy mittomen, de VAN erteke, ha beikszeled',  
  4. "2" => "checked, vagy mittomen, de VAN erteke, ha beikszeled',  
  5. "3" => "checked, vagy mittomen, de VAN erteke, ha beikszeled'  
  6. );  
Ez igy segitett?

[eisei]
2

-

Anonymous · 2006. Már. 13. (H), 19.38
A HTML inputokat nem kell előre leszámozni.
  1. <input type="checkbox" name="ezegytomb[]">  
A $HTTP_GET_VARS szuperglobálist nagyon gyorsan el kell felejteni, helyette $_POST tömböt kell használni.

Ezektől eltekintve jó az iránymutatás.
4

miért is?

Hodicska Gergely · 2006. Már. 13. (H), 19.43
A HTML inputokat nem kell előre leszámozni.

És akkor honnan fogja tudni, hogy adott elemek közül pontosan melyeket válassztották ki? ;)


Felhő
7

Igaz

Anonymous · 2006. Már. 14. (K), 02.12
Elnézést a félrevezetésért, igazad van. Rég kellett már ilyennel dolgoznom, csak az maradt meg a fejemben, hogy kap automatikusan egy számozott indexet. Viszont akkor is nulláról indul, ha a közepétől kezdem beikszelgetni a csekbokszokat, és akkor is folytatólagosan indexeli, ha mondjuk csak minden második lett beikszelve...
Postom törölhető, nehogy valaki véletlenül ne olvassa tovább a helyreigazítást és nála is a rossz ragadjon meg... :)
8

a value attribútumból

Anonymous · 2006. Már. 14. (K), 17.47
pont most csinálok én is egy ilyen kis apróságot.
a
  1. <input type="checkbox" name="szuro[]" value="1">1-es szűrő  
  2. <input type="checkbox" name="szuro[]" value="2">2-es szűrő  
  3. <input type="checkbox" name="szuro[]" value="3">3-as szűrő  
  4. ...  
űrlapot /labeleket és formot kihagytam, végülis ez a lényeges/ küldöm el, és a
  1. <?php  
  2. foreach ($_POST['szuro'as $lenyegtelen => $ertek) {  
  3.   print("$ertek , ");  
  4. }  
  5. ?>  
kóddal tökéletes eredményt kapok, mivel csak azoknak a checkbox típusú inputoknak adja át az értékét, amiket kipipálnak előtte.
hibaellenőrzést, stb-t gondoljuk oda, ez a szigorúan vett lényegi rész.

gex
10

Ez is igaz, de

Anonymous · 2006. Már. 15. (Sze), 12.30
Bár nem vagyok biztos benne, úgy tudom az ajánlások (szabvány) szerint nem kötelező a value attribútum. A tömb előreszámozásával és a value elhagyásával a forráskód mérete csökken, és bár ez nem túl sok, ugye a sok kicsi sokra megy... :)
3

ez hogy működne?

Hodicska Gergely · 2006. Már. 13. (H), 19.41
Nem látom át, hogy mit szerettél volna ezzel az utolsó feltétellel.

Viszont az alap az rendben van, így kell elnevezni a checkboxokat. Aztán form küldés után egy foreach elég Neked:
  1. <?php  
  2.     foreach($_POST['ezegytomb'as $beixeltek) {  
  3.         // barmi  
  4.     }  
  5. ?>  
Felhő
5

1megoldás

breakline · 2006. Már. 13. (H), 21.49
hasonlón dolgozom épp, egy többszintű kereső dobja ki nálam az e-mail címeket, akiknek levelet kell küldeni. A keresés visszaad egy tömböt, amiben azon személyek azonosítója van, akik megfeleltek a keresésnek, majd ezt a tömböt küldöm tovább a levelezőrésznek, az URL-ben vagy POST-ként. Én az URL-t használtam, de talán ez lényegtelen az én esetemben.
Aztán a levelező php kikeresi az id-khez tartozó mailcímeket, így kevesebb adat is mozog és jobban áttekinthető az egész.

üdv
BL
6

én erre indultam végül:

MSzilveszter · 2006. Már. 13. (H), 22.15
file1.php így gyártja le a checkboxokat:
  1. <?php  
  2. function nevek_checkbox($id$nev$szam)  
  3.     {  
  4.       
  5.     print('  
  6.         <input type="checkbox" name="checkbox_e['.$szam.']" value="'.$id.'" class="kereses_forum"><label for="'.$id.'" class="kerese_forum">'.$nev.'</label><br>  
  7.     ');  
  8.           
  9.     }  
majd a file2.php ezt csinálja:
  1. <?php  
  2. // function def.  
  3. function mailkuldes_step2($kinek$kitol$mail$targy$szoveg)  
  4.     {  
  5.     print($kinek.$kitol.$mail.$targy.$szoveg.'<br>');  
  6.     }  
  7.   
  8. $i==1;  
  9.   
  10. foreach($_POST['checkbox_e'as $keresendo_id) {  
  11.   
  12.     $sql_email_step2 = "SELECT id, nev, email, poszt, count FROM emailkuldes WHERE id=".$keresendo_id." ORDER BY id DESC LIMIT 0 , 1";  
  13.     $query_email_step2 = mysql_query($sql_email_step2);  
  14.     $array_email_step2 = mysql_fetch_array($query_email_step2);  
  15.       
  16.     mailkuldes_step2($array_email_step2['nev'], $mailkitol$array_email_step2['email'], $emailtargya$emailszovege);  
  17.       
  18.     } // foreach vége  
print helyére fogom tenni a mail() függvényt, szerintem. De ez még csak próba, most fogom csak lefuttatni.
Persze a $mailkitol, $emailtargya, $emailszovege az érkezik a formból normálisan.
9

kiválóan működik

MSzilveszter · 2006. Már. 14. (K), 18.03
Hát végülis ennél maradtam, és ez így tökéletesen működik, semmi hiba nincs vele. - nálam :)

Üdv.:

Szilveszter - netnap.hu