Autor Zpráva
matesek
Profil
Snažil jsem se najít , ale nenašel jsem , zda se dá nastavit hodnoty checkboxu . Jestli že je zaškrtlý , aby odeslal ano , jestli není zaškrtlý odeslal ne . A potom ještě , jestliže není zaškrtlý , aby data neodesílal a upozornil uživatele na to , že není zaškrtlý . Něco jako podmínka pro odeslání .

Moderátor Chamurappi: Titulek „proměnná v checkboxu“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
panther
Profil
matesek:
zda se dá nastavit hodnoty checkboxu
<input type="checkbox" checked>


Jestli že je zaškrtlý , aby odeslal ano , jestli není zaškrtlý odeslal ne
tak to funguje. Jinak by nešel zpracovávat.

A potom ještě , jestliže není zaškrtlý , aby data neodesílal a upozornil uživatele na to , že není zaškrtlý
to se dá udělat, podmínka v JS nebo PHP.

Před diakritickými znaménky se nepíše mezera, blbě se tvůj text čte.
matesek
Profil
panther:
„Jestli že je zaškrtlý , aby odeslal ano , jestli není zaškrtlý odeslal ne“
tak to funguje. Jinak by nešel zpracovávat.

Alá když to nemám nastavené, tak se mi odešle buďto nic, nebo on. Já bych chtěl ano / ne

Před diakritickými znaménky se nepíše mezera, blbě se tvůj text čte.

Omlouvám se, jsem zvyklý.
Chamurappi
Profil
Reaguji na mateska:
Já bych chtěl ano / ne
Buď se odešle value, nebo nic. Nejde nastavit hodnota, která se má poslat při nezaškrtnutí.
Jestli nějakou hodnotu potřebuješ, použij místo každého zaškrtávátka dva <input type="radio"> s value="ano" a "ne", mezi kterými si uživatel přepne.


Reaguji na mateska:
Před diakritickými znaménky se nepíše mezera
Interpunkci se neříká diakritika :-)
matesek
Profil
Chamurappi:
Buď se odešle value, nebo nic. Nejde nastavit hodnota, která se má poslat při nezaškrtnutí.

Určitě by se ale dalo přes PHP tu proměnnou změnit . Něco jako :

<input type="checkbox" name="a" id="a">

<?php
if ($a="on")
   echo "ANO"
else
   echo "NE"
?>


Výsledkem mi teda plyne toto :


<script>
function kontrolaDat(vstup){
    zadanaHodnota = vstup.checkbox.value; // načtena hodnota (value) z políčka s name=checkbox
    if( zadanaHodnota.indexOf("on") == -1) // není zaškrtlý
        {alert("Musíte souhlasit"); return false;}
    else return true;
}
</script>

<form action="odeslat.php" onsubmit="return kontrolaDat(this)">
   Souhlasím: <input type="checkbox" name="checkbox">
    <input type="submit" value="odeslat">
</form>




použij místo každého zaškrtávátka dva <input type="radio">

Tam bych opět musel kontrolovat , jestli je zaškrtlé a vyšlo by to nastejno , krom těch proměnných .
matesek
Profil
Ani tohle mi nevyřešilo problém , klasicky to odešle . Zkouším to teď čistě v PHP nějaké podmínky , ale i to je bezvýsledné .
panther
Profil
Chamurappi:
Interpunkci se neříká diakritika :-)
aj, já věděl, že se to jmenuje jinak, jen jsem si nevzpomněl na to správné výrazivo :-) Ale všichni víme, co myslím. A snad se i shodneme na tom, že se to blbě čte.
Chamurappi
Profil
Reaguji na mateska:
zadanaHodnota.indexOf("on") == -1
Nekontroluj value, kontroluj checked.


Reaguji na panthera:
Shodneme.
matesek
Profil
<?
if ($_GET['checkbox']=='on')
  echo $checkbox=1;

if ($checkbox=='1')
  echo "Zapnuto";
?>


Dá se nějak schovat ta výsledná 1 tak, aby se zobrazovalo jen Zapnuto ? Nyní se mi zobrazuje 1Zapnuto
Kajman_
Profil *
Na řádku 3 nedávejte echo, jen přiřazení.
matesek
Profil
Už jsem toho vyzkouel až moc . Mohl by někdo poradit jak na to ? Odeslat formulář pouze , pokud je checkbox ON ?
sysel
Profil
No zkusme třeba tohle:
<script>
function uvolnit(inp) { if(inp.value == 'sem vepište své číslo bot') inp.value='';}
function kontrola(inp){ if(inp.value == '') inp.value='sem vepište své číslo bot';} 
function kotrolaPredOdeslani(frm){ 
  var chckOn=document.getElementById('tentoCheckbox').checked;
  var bot=frm.cislobot.value;
  if( chckOn && bot !='sem vepište své číslo bot') {frm.submit();};
}
</script>
...

<form action="#" method="get"><br>
Boty: <input type="text" name="cislobot" value="sem vepište své číslo bot" onfocus="uvolnit(this)" onblur="kontrola(this)"><br>
<input type="checkbox" id="tentoCheckbox"> Souhlasím s odesláním<br>
<input type="button" name="odeslano" value="odeslat" onclick="kotrolaPredOdeslani(this.form)">
</form>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: