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:
<input type='checkbox' name='ezegytomb[1]>
<input type='checkbox' name='ezegytomb[2]>
<input type='checkbox' name='ezegytomb[3]>
...
<?php
$HTTP_GET_VARS['ezegytomb'] == array(
"1" => "checked, vagy mittomen, de VAN erteke, ha beikszeled',
"2" => "checked, vagy mittomen, de VAN erteke, ha beikszeled',
"3" => "checked, vagy mittomen, de VAN erteke, ha beikszeled'
);

Ez igy segitett?

[eisei]
2

-

Anonymous · 2006. Már. 13. (H), 19.38
A HTML inputokat nem kell előre leszámozni.
<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

<input type="checkbox" name="szuro[]" value="1">1-es szűrő
<input type="checkbox" name="szuro[]" value="2">2-es szűrő
<input type="checkbox" name="szuro[]" value="3">3-as szűrő
...
űrlapot /labeleket és formot kihagytam, végülis ez a lényeges/ küldöm el, és a

<?php
foreach ($_POST['szuro'] as $lenyegtelen => $ertek) {
  print("$ertek , ");
}
?>
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:
<?php
    foreach($_POST['ezegytomb'] as $beixeltek) {
        // barmi
    }
?>
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:
<?php
function nevek_checkbox($id, $nev, $szam)
	{
	
	print('
		<input type="checkbox" name="checkbox_e['.$szam.']" value="'.$id.'" class="kereses_forum"><label for="'.$id.'" class="kerese_forum">'.$nev.'</label><br>
	');
		
	}
majd a file2.php ezt csinálja:

<?php
// function def.
function mailkuldes_step2($kinek, $kitol, $mail, $targy, $szoveg)
	{
	print($kinek.$kitol.$mail.$targy.$szoveg.'<br>');
	}

$i==1;

foreach($_POST['checkbox_e'] as $keresendo_id) {

	$sql_email_step2 = "SELECT id, nev, email, poszt, count FROM emailkuldes WHERE id=".$keresendo_id." ORDER BY id DESC LIMIT 0 , 1";
	$query_email_step2 = mysql_query($sql_email_step2);
	$array_email_step2 = mysql_fetch_array($query_email_step2);
	
	mailkuldes_step2($array_email_step2['nev'], $mailkitol, $array_email_step2['email'], $emailtargya, $emailszovege);
	
	} // 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