Autor Zpráva
Zerog
Profil
dobry den

nevim jestli to patri zrovna sem ale mam problem s checkboxema. De o to ze generuju tabulku z databazi a pred nekteryma zaznamama mam checkbox. Pod tabulkou je treba "odeslat vybranym" a ja potrebuju zjistit vsechny ty zaskrkle. A nevim jak se to vubec resi. Mozna ze pomoci JavaScriptu ale nevim. Snad to chapete.
Pokud tohle tema sem nepatri tak se omlouvam.
Lukáš Chmela
Profil *
Nevím jestli tě dostatečně chápu, ale pokud potřebuješ zjistit jenom to, zda jsou checkboxy zaškrtlé, je nejjednodušší poslat je postem na stránku s daným php scriptem a pomocí php pak zjistit jejich hodnotu.
Stačí vytvořit podmínku if:
IF($_POST['jmenocheckboxu']=='on') { pozadovanaakce();}
Je-li checkbox zaškrtnut, má hodnotu on. Není-li zaškrtnut, má hodnotu NULL.
jmenocheckboxu je logicky jeho jméno, které vepíšeš do tagu input ( name="pozadovanejmeno" ).
No a je-li checkbox zaškrtnut, provede php script funkci pozadovanaakce(), či co si místo ní uvedeš v ifu ;-)
Hooonza
Profil *
http://www.tvorba-webu.cz/javascript/checked.php
http://www.javascript.cz/?vlastnosti=checked

Snad by se to tam dalo pochopit? :-)
Lukáš Chmela
Profil *
jj, nebo pomocí js ;-).
Ale pokud jsem dobře pochopil, výsledek se stejně bude řešit pomocí php scriptu, takže proč tam ještě rvát js, které si tolik uživatelů vypíná?
Zerog
Profil
diky za odkazy jiste mrknu. Ja to jeste trochu upresnim. Takze generuji tabulku. Cast kodu:

..<input type=\"checkbox\" name=\"vyber_emailu\" value=\"".$zaznam['email']."\">...

tento kod se stale opakuje podle poctu zaznamu v DB. v promene $zaznam['email'] je nactena vzdy e-mailova odresa. kdyz to odeslu tak v promene vyber_emailu se ulozi emailova adresa, ale logicky jen ta posledni zaskrla (vybrana).

A ja zkratko potrebuju aby to poslalo vsechny vybrane emailove adresy.

Vim proc to tak je. Je to tak kvuli tomu ze se ta promena "vyber_emailu" vzdy prepise uz na tu posledni hodnotu kterou to posle. Chtel jsem to vyresit tak ze to generovalo cislo vzdy jiny nazev checkboxu. Ukazka:
..<input type=\"checkbox\" name=\"vyber_emailu2\" value=\"".$zaznam['email']."\">...
..<input type=\"checkbox\" name=\"vyber_emailu3\" value=\"".$zaznam['email']."\">...
..<input type=\"checkbox\" name=\"vyber_emailu4\" value=\"".$zaznam['email']."\">...

tak to funguje. Ale jak to mam pak cist??? prece numuzu ricne vytvaret promeny $vyber_emailu2,$vyber_emailu3,$vyber_emailu4,.....$vyber_emailu459..

a kdyz jsem zkousel udelat neco ve smylu $vyber_emailu.$promena_kde_se_generuje_cislo_0-max
($promena_kde_se_generuje_cislo_0-max=proste se tam generuje cislo od 0 az x) tak to nefunguje.

Takze by me zajimalo jak se to resi? Treba to je v tech odkazech. Jinak sry za preklepy a hrubky ale mam jeste trosku kocovinu ...tak to pls omluvte :)
Lukáš Chmela
Profil *
Obávám se, že teď už vůbec nerozumím, ale nešlo by to udělat logickým způsobem nějak takhle?:
$actualnumb = "0";
...
function vypis_mailu($actualnumb,$zaznam) {
echo "<input type=\"checkbox\" name=\"vyber_emailu".$actualnumb."\" value=\"".$zaznam['email']."\">";}
...
vypis_mailu(($actualnumb+1),$zaznam);
...
Zerog
Profil
Jo diky pres funkci jsem to nezkousel neni to sice ono ale privedlo me to na novou cestu. Diky vam, Lukasi :)
Lukáš Chmela
Profil *
=) Neni zac, rado se stalo ;-)
IONI
Profil *
zkus to takto:

$i=0;
while (dokud jsou zaznamy){
$i++;
<input type=\"checkbox\" name=\"vyber_emailu".$i."\" value=\"".$zaznam['email']."\">
}
<input type=\"hidden\" name=\"pocet_emailu\" value=\"".$i."\">
Lukáš Chmela
Profil *
IONI: Jj, nebo tak. dobrý příklad ;-)
IONI
Profil *
v tom cyklu by melo byt asi
++$i;
nebo na zacatku nastavit
$i=1;
IONI
Profil *
blbost
Zerog
Profil
cyklem si poradim :) jj taky dobry ..diky juknu na to
DoubleThink
Profil *
Chtel jsem to vyresit tak ze to generovalo cislo vzdy jiny nazev checkboxu. Ukazka:
...
tak to funguje. Ale jak to mam pak cist??? prece numuzu ricne vytvaret promeny


Není jednodušší přidělit checkboxům jména jako pole?
<input type="checkbox" name="seznam[]" value="hodnota" />

<input type="checkbox" name="seznam[]" value="jina hodnota" />
<input type="checkbox" name="seznam[]" value="dalsi hodnota" />
<input type="checkbox" name="seznam[]" value="posledni hodnota" />
V PHP pak dostaneš pole $seznam
finc
Profil
to: DoubleThink
Tu logiku, kterou jsi to pojmul je úplně naopak :)

Když se zamyslíš, an co přesně využíváš tyto checkboxy? Vždy se jedná o nějakou oblast.

Př uložení jednoduchých práv.

$query = "SELECT * FROM uzivatele";
if ($result = DB::query($query)) {
     while($row = $result->fetch_assoc()) {
          echo "<input type=\"checkbox\" name=\"uzivatel[". $row["login"] ."]\" value=\"1\" />";
     }
     $result->close();
}

// po odeslani formulare
foreach ($_POST["uzivatel"] as $key => $val) {
     if ($val == 1) {
          $query = "INSERT INTO prava (login) VALUES ('". $key ."')";
          DB::query($query);
     }
}
mORb
Profil *
Ja by som potreboval tiez pomoc.. v databaze mam ulozene e-maily a ich id a id prisluchajuce k danemu uzivatelovi. po prihlaseni sa zobrazia uzivatelove e-maily ale ich id nejdu zasebou.. potom mam :


while($msg = mysql_fetch_array($messages))
{
echo'<tr><td class="message_chckb_c"><input type="checkbox" name="checkGroup"></td><td class="nick_c"><a href="index.php?page=message_read&id_mes='.$msg[id_mes].'" class="smallhyp_o" title="Čítaj správu od '.$msg[Login].'">'.$msg[Login].'</a></td><td class="datum_c">'.$msg[datum_odos].' - '.$msg[cas_odos].'</td><td class="message_neprecit_c">Neprečítaná</td></tr>';
}
else

na konci je jeden checkbox ktoreho zaskrtnutim sa zaskrtnu vsetky chceckboxy patriace k e-mailom.. srcipt:

<script type="text/javascript">

function checkAll(checkname, exby) {
for (i = <?echo"$hodnoty[min]";?>; i <= <?echo"$hodnoty[max]";?>; i++)
checkname[i].checked = exby.checked? true:false
}
</script>
//$hodnoty[max] - maximalne id_cislo e-mailu
//$hodnoty[min] - minimalne id_cislo e-mailu
<table>
<tr><td class="small_intab_orange">Všetky</td><td><input type="checkbox" name="all" onClick="checkAll(document.mylist.checkGroup,this)"></td>
</table>


lenze ak mi id e-mailov nejdu zasebou neoznacia sa mi vsetky... a potom by som chcel oznacene e-maily vymazat z databazy ale presne neviem ako...pomoze mi niekto prosiiiiim? dikes za kazdu radu!
Zerog
Profil
tak dej aby se emaily vypsali serazene podle id. dela se to v tom sql dotazu ktery mas nad ($msg = mysql_fetch_array($messages)) timhle .



$messages=MySQL_Query("SELECT * FROM tabulka ORDER BY ID");
mORb
Profil *
no len problem je v tom ze mne sa do tabulky ukladaju maily naraz...ulozi sa napr mail s id 50 pre user1 a id 51 pre user2 a ked dam vypisat maily pre user2 tak tam mail s id 50 chyba..takze to tam je dost rozhadzane... a neviem ake ine id by som k checkboxom priradil aby sript potom vedel pre ktore id mailov ich ma vymazat...
Zerog
Profil
hmm nejak nechupu jak do do te tabulky zapisujes ze to id nejde za sebou? kazdopadne jestli ti to pomuze tak ja jsem to nakonec udelal tak ze kdyz dam "poslat vsem email" tak proste pres php to tam vyfluse vsechny emaily v databazi a kdyz pomoci tech checkboxu vyberes jen nektery tak to mam udelany tak ze do value to napise vzdy email (name=maily value="$email") a odeslu to ....pak pomoci $QUERY_STRING to vsechno prectu a s tim uz si muzes delat co chces ....

nevim jestli ti to pomuze spis ne ....
mORb
Profil *
no ja mam tu tabulku e-mail spravenu takto... id mail, id user, message a potom pomocou id user mi vypise vsetky spravy ktore su pre neho urcene.. id mail je auto_increment takze tie id spravy pre jednotlivych uzivatelov nakoniec nejdu zasebou... a potom scriptom neviem spravit aby sa mi zaskrtnutim "vsetky" oznacili vsetky spravy aby si ich uzivatel mohol naraz odstranit...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0