Bejelölt radio button számolása submit-ra
Sziasztok!
Készítettem egy tesztet/kvízt mysql és php-val. Ez nagyjából már működik is. Talán még annyi, hogy a kérdéseket véletlenszerűen veszem ki az adatbázisból, válaszolni radio button bejelölésével lehet.
A probléma:
Ha a 10 kérdésből nem jelölöm ki mindet, csak mondjuk 9-et, akkor az értékelés oldalon 9 eredményt kapok.
Arra gondoltam, küldéskor (onsubmit) megszámolom a bejelölt radio gombokat, ha kevesebb mint 10, akkor javascript window.confim()-mal figyelmeztetem a felhasználót. Ok, vagy mégsem.
A kérdésem:
Hogyan tudom megszámolni a bejelölt radio gombokat? esetleg a PHP $_POST tömböt?
Előre is köszönöm a segítséget!
■ Készítettem egy tesztet/kvízt mysql és php-val. Ez nagyjából már működik is. Talán még annyi, hogy a kérdéseket véletlenszerűen veszem ki az adatbázisból, válaszolni radio button bejelölésével lehet.
A probléma:
Ha a 10 kérdésből nem jelölöm ki mindet, csak mondjuk 9-et, akkor az értékelés oldalon 9 eredményt kapok.
Arra gondoltam, küldéskor (onsubmit) megszámolom a bejelölt radio gombokat, ha kevesebb mint 10, akkor javascript window.confim()-mal figyelmeztetem a felhasználót. Ok, vagy mégsem.
A kérdésem:
Hogyan tudom megszámolni a bejelölt radio gombokat? esetleg a PHP $_POST tömböt?
Előre is köszönöm a segítséget!
jQuery
Kezdő vagyok
Sajna ez még kicsit bonyolult nekem így elsőre. jQuery sajna nem jó, mert nem tanultam. Ezért a javascript érdekelne. Kérhetnék esetleg valami leírásról linket?
Esetleg részletesebb magyarázatot?
Leegyszerűsítve a teszt így néz ki:
<strong>1. Kérdés?</strong>
<br />
<input type='radio' name='1' value='2' />Válsaz 1
<input type='radio' name='1' value='0' />Válasz 2
<input type='radio' name='1' value='1' />Válasz 3
<br />
<strong>2. Kérdés?</strong>
<br />
<input type='radio' name='1' value='2' />Válsaz 1
<input type='radio' name='1' value='0' />Válasz 2
<input type='radio' name='1' value='1' />Válasz 3
<br />
<strong>3. Kérdés?</strong>
<br />
<input type='radio' name='1' value='2' />Válsaz 1
<input type='radio' name='1' value='0' />Válasz 2
<input type='radio' name='1' value='1' />Válasz 3
<br />
<br /><br /><input name='torol' type='reset' id='button2' value='Űrlap törlése' />
<input name='ertekel' type='submit' id='button' value='Értékelés' />
</form>
Azt szeretném megcsinálni,hogy onsubmitra megszámolom a válaszokat, ha kisebb mint itt pl 3, akkor window.confirm () fut le, amin választhat a felhasználó, hogy marad itt és kitölt a hiányzót, vagy megy tovább az értékelésre.
Millió köszönet !
jQuery
JavaScriptről rengeteg könyv jelent meg, ahogy jQuery-ról is. Érdemes talán venni egy könyvet indulásnak. Amennyiben csak a referencia érdekel, érdemes a Mozilla oldaláról indulni.
js
És ez a kiválasztás működik?
Ha a "radio" gomboknak megegyezik a neve, akkor azok egy blokknak számítanak és azokból csak egy választható..
Amúgy a kérdésedre a válasz:
Tehát a felső kód végig megy a megadott "container" input elemein és a "radio" gombokat a nevük szerint külön vizsgálja (ezért is lenne fontos név alapján külön blokkokba szedni) és megszámolja, hogy ha tíznél kisebb, akkor alert-et dob.
üdv, Gábor
És hogyan rakjam be?
Igazad van, azért azonosak a nevek mert másolgattam. Nem figyeltem, bocsi.
Sajnos nem működik, szerintem nem jól raktam be a függvényt. Hogyan kell?
És nem alertet szeretnék, hanem ha akar, tovább tudjon menni .
<head>
<script language="JavaScript" type="text/javascript">
function checkRadioNum(container) {
if (container != null && typeof(document.getElementById(container)) == "object") {
var inps = document.getElementById(container).getElementsByTagName("input");
var counter = 0;
for (var i=0; i<inps.length; i++) {
var inp = inps[1];
var name = "";
if (inp.type == "radio" && name.toLowerCase() != inp.name.toLowerCase()) {
name = inp.name;
counter++;
}
}
if (counter<3) {
alert("Kevés vagy eccsém'! :)");
}
}
}
</script>
</head>
<body>
<br />
<strong>1. Kérdés?</strong><br />
<form onsubmit=checkRadioNum() name='kerdesek' method='post' action='ertekeles.php'>
<input type='radio' name='8' value='3' />Válasz 1<br />
<input type='radio' name='8' value='0' />Válasz 2<br />
<input type='radio' name='8' value='2' />Válasz 3<br />
<strong>2. Kérdés?</strong><br />
<input type='radio' name='1' value='0' />Válasz 1<br />
<input type='radio' name='1' value='1' />Válasz 2<br />
<input type='radio' name='1' value='2' />Válasz 3<br />
<strong>3. Kérdés?</strong><br />
<input type='radio' name='15' value='0' />Válasz 1<br />
<input type='radio' name='15' value='1' />Válasz 2<br />
<input type='radio' name='15' value='3' />Válasz 3<br />
<br /><br /><input name='torol' type='reset' id='button2' value='Űrlap törlése' /> <input name='ertekel' type='submit' id='button' value='Értékelés' />
</form>
</body>
</html>
javítás
Ezeket javítottam:
Még egy pici hiányzik
Már csak annyi hiányzik, ha itt
window.confirm("Nem válaszoltál minden kérdésre! Folytatod?");
a mégse gomb megnyomásakor maradjon az űrlapon, és a kitöltött gombok is maradjanak bejelölve. Kerestem ilyet, de nem találtam.
Köszönöm!
return false
Js:
"checked" ?
Az nem jó megoldás ha a válaszok közül a legelsőt, mindig alapértelmezetten bejelölöd?
<input type='radio' name='1' value='2' checked/>válasz1<br />
dinamikus űrlap
Azért köszi!
Megoldva
<head>
<script language="JavaScript" type="text/javascript">
function checkRadioNum(container) {
if (container != null && typeof(document.getElementById(container)) == "object") {
var inps = document.getElementById(container).getElementsByTagName("input");
var counter = 0;
for (var i=0; i<inps.length; i++) {
var inp = inps[i];
var name = "";
if (inp.type == "radio"&& name.toLowerCase() != inp.name.toLowerCase() && inp.checked) {
name = inp.name;
counter++;
}
}
if (counter<3) {
if (!window.confirm("Nem válaszoltál minden kérdésre! Folytatod?"))
{
return false;
}
}
}
}
</script>
</head>
<body>
<br />
<strong>1. Kérdés?</strong><br />
<form id="formContainer" onsubmit="return checkRadioNum('formContainer')" name="kerdesek" method='post' action='ertekeles.php'>
<input type='radio' name='8' value='3' />Válasz 1<br />
<input type='radio' name='8' value='0' />Válasz 2<br />
<input type='radio' name='8' value='2' />Válasz 3<br />
<strong>2. Kérdés?</strong><br />
<input type='radio' name='1' value='0' />Válasz 1<br />
<input type='radio' name='1' value='1' />Válasz 2<br />
<input type='radio' name='1' value='2' />Válasz 3<br />
<strong>3. Kérdés?</strong><br />
<input type='radio' name='15' value='0' />Válasz 1<br />
<input type='radio' name='15' value='1' />Válasz 2<br />
<input type='radio' name='15' value='3' />Válasz 3<br />
<br /><br /><input name='torol' type='reset' id='button2' value='Űrlap törlése' /> <input name='ertekel' type='submit' id='button' value='Értékelés' />
</form>
</body>
</html>