webForumDet fria alternativet

Radio problem

PHPur PHP

14 svar · 311 visningar · startad av Webslave

Medlem sedan maj 2002647 inlägg
Frågan#1

Detta har varit uppe många gånger och jag har läst och testat många script men av någon anledning får jag dem inte att funka.

Jag vill kolla om någon radio är markerad och jag vet inte antalet för det ändras hela tiden.

Detta är koden jag har klämt fram (med hjälp av inlägg på wF dvs):

	<script language="javascript" type="text/javascript">
	function checkVote(){
		var n, check = document.vote.voteId;
		for(var i=0; i<check.length; i++){
			if(check[i].checked){
				n=1;
			}
			if(!n){
  			alert("Ingen radio!");
  			return false;
  		}
  		else{
				return true;
			}
		}
	}
	</script>

Vad är fel? Det funkar bara på den första radio-knappen men de andra returnerar en alert oavsett om de är markerade eller inte... hilfe?

Medlem sedan juni 20004 308 inlägg
#2
<script language="JavaScript" type="text/javascript">
function checkradio(obj){
	for(var n=0;n<obj.foo.length;n++){
		if(obj.foo[n].checked){ alert("Finfint"); return true; }
	}
	alert("Markera 1 radioruta"); return false;
}
</script>
<form action="something.asp" onsubmit="return checkradio(this);">
<input type="radio" name="foo" value="a">
<input type="radio" name="foo" value="b">
<input type="radio" name="foo" value="c">
<input type="submit" value="Just do it!">
</form>

... du kan givetvis plocka bort alerten om du vill.

Medlem sedan maj 2002647 inlägg
#3

Tackar tackar... funkar fin fint ;)

Medlem sedan maj 2002647 inlägg
#4

Nu har jag en fråga till:
När jag försöker få fram värdet från radion (använder PHP så det blir alltså $_POST['voteId'] ) så blir värdet "on"... inte riktigt det som jag letar efter. jga loopar fram knapparna och de får ett värde från 1 till så många knappar som finns men värdet som jag hämtar från $_POST... blir on. Hilf?

Medlem sedan juni 20004 308 inlägg
#5

Skrev lite fel i exemplet, även om det inte märktes :) Värdet läser du av med radioknappen[indexnummer].value, exempel;

		if(obj.foo[n].checked){ alert("Värdet är "+obj.foo[n].value); return true; }
Medlem sedan sep. 20021 655 inlägg
#6

Webslave skrev:

jga loopar fram knapparna och de får ett värde från 1 till så många knappar som finns [...]

Tänk på att värdet inte får börja på en siffra.

Fel:

<input type="radio" value="1" />
<input type="radio" value="2" />
<input type="radio" value="3" />

Rätt:

<input type="radio" value="a1" />
<input type="radio" value="a2" />
<input type="radio" value="a3" />

EDIT:
Fel av mig. Jag tänkte på "name" (eller "id"), som inte får börja på en siffra. Värdet kan ju vara vad som helst.

Medlem sedan maj 2002647 inlägg
#7

name är voteId så det ska inte vara några problem... ska testa lite saker och se om det fungerar.

Medlem sedan maj 2002647 inlägg
#8

Kommer inte på något... någon annan?

Medlem sedan juni 20004 308 inlägg
#9

Du undrar alltså hur du får fram datat med PHP, inte JavaScript?

Medlem sedan maj 2002647 inlägg
#10

Om vi säger så här:
Som vanligt med forumlär data hämtas det med $_POST['namn'] men när jag ska hämta värdet från radion blir värdet "on" och det ska det inte vara... det ska vara en siffra. Undrade bara om det är något med js som gör att det blir så eller om jag ska kolla i php forumet.

Medlem sedan juni 20004 308 inlägg
#11

Nej, det har inget med JavaScript att göra. Skickar över tråden till PHP-forumet.

Medlem sedan maj 2002647 inlägg
#12

Kom på det... fel kodning av mig... bluhähäh

Medlem sedan aug. 20002 975 inlägg
#13

------

Medlem sedan sep. 20021 655 inlägg
#14

Nu fick du visst rätt på det, men om man får värdet "on" på en radio-knapp innebär det antingen att man har gett den värdet "on", eller att man inte har gett den något värde alls (default-värde för en radio-knapp är alltså "on").

PHP ändrar inte några värden.
Det enda tillfället jag kan komma på att man kan ha problem med formulärsvärden i PHP är ifall man har en "select multiple", men det är en helt annan femma.

Medlem sedan maj 2002647 inlägg
#15

Det var ett "=" jag hade glömt *dumma mig* Men nu har jag lärt mig något nytt i alla fall :D

140 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)