webForumDet fria alternativet
Logga in / Bli medlem

Pop-up i omröstning

JavaScript

13 svar · 372 visningar · startad av silfver

Medlem sedan apr. 200312 679 inlägg
Trådstart#1

Tja
Har ett litet problem här jag hoppas kommer att få löst av er som kan det bättre än jag.
Jag vill nämligen ha upp ett popup fönster när besökaren trycker på "Rösta".

<form action=poll/poll.php method=post>
Det går en hel del spekulationer angående klassfest,<br>Vill <b>Du</b> ha klassfest?<br>
<input type=radio name=vote value="Ja."> Ja<br>
<input type=radio name=vote value="Nej."> Nej<br>
<input type=radio name=vote value="Va?"> Va?<br>
<input type=submit value="Rösta" class="knapp">
</form>

Hur ska jag göra för att detta ska vara möjligt? Går ju också bra att ha popup ändast på radioknapparna. Så när man trycker i en sådan så röstar den.
Tacksam för alla svar,
mvh

Medlem sedan nov. 20017 144 inlägg
#2

Välkommen till WF!
Något liknande kanske?

<script>
function openWin(){
	var win = window.open( "", "popUp", "width=500,height=200,scrollbars=auto");
	win.document.open();
win.document.write("<body style=\"font-family:verdana,arial;font-size:10px;\"><form action=poll/poll.php method=post>")
win.document.write("Det går en hel del spekulationer angående klassfest,<br>Vill <b>Du</b> ha klassfest?<br>") 
win.document.write("<input type=radio name=vote value=\"Ja.\"> Ja<br>")
win.document.write("<input type=radio name=vote value=\"Nej.\"> Nej<br>")
win.document.write("<input type=radio name=vote value=\"Va?\"> Va?<br>")
win.document.write("<input type=submit value=\"Rösta\" class=\"knapp\"></form>")
win.document.write("<br><a href=\"#\" onclick=\"self.close();\">Stäng</a></body>" );
	win.document.close();
	win.focus();
};</script>

<a href="javascript:void(0)" onclick="openWin();">Rösta</a>

Medlem sedan dec. 20025 483 inlägg
#3

Välkommen till webForum silfver! :bire

Om du vill att röstningen skall resultera i ett "popup"-fönster när besökaren trycker på "Rösta" kan du göra så här:

<script type="text/javascript">
<!--

function _vote( a ){
	var url = "poll/poll.php?svar=";

	if( typeof( a ) == "string" )
		url += a;
	else {
		for( var i=0, elm; ( elm = a.elements[ i ] ); i++ ){
			if( elm.checked )
				url += elm.value;
		}
	}

	window.open( url, "", "height=300,width=300" );
	return false;
};

//-->
</script>

...

<form onsubmit="return _vote(this)">
Det går en hel del spekulationer angående klassfest,<br>Vill <b>Du</b> ha klassfest?<br>
<input type=radio name=vote value="Ja."> Ja<br>
<input type=radio name=vote value="Nej."> Nej<br>
<input type=radio name=vote value="Va?"> Va?<br>
<input type=submit value="Rösta" class="knapp">
</form>

Om du istället vill att röstningen skall triggas när besökare trycker på någon av "radio"-knapparna kan du använda samma skript som ovan men med följande HTML-kod:

<form>
Det går en hel del spekulationer angående klassfest,<br>Vill <b>Du</b> ha klassfest?<br>
<input type=radio name=vote value="Ja." onclick="_vote('ja')"> Ja<br>
<input type=radio name=vote value="Nej." onclick="_vote('nej')"> Nej<br>
<input type=radio name=vote value="Va?" onclick="_vote('Va?')"> Va?<br>
</form>

:)

Medlem sedan apr. 200312 679 inlägg
#4

Tack för alla svar! Ska testa med en gång.

mvh silfver!

Medlem sedan apr. 200312 679 inlägg
#5
<script type="text/javascript">
<!--

function _vote( a ){
	var url = "poll/poll.php?svar=";

	if( typeof( a ) == "string" )
		url += a;
	else {
		for( var i=0, elm; ( elm = a.elements[ i ] ); i++ ){
			if( elm.checked )
				url += elm.value;
		}
	}

	window.open( url, "", "height=300,width=300" );
	return false;
};

//-->
</script>

Om du istället vill att röstningen skall triggas när besökare trycker på någon av "radio"-knapparna kan du använda samma skript som ovan men med följande HTML-kod:

<form>
Det går en hel del spekulationer angående klassfest,<br>Vill <b>Du</b> ha klassfest?<br>
<input type=radio name=vote value="Ja." onclick="_vote('ja')"> Ja<br>
<input type=radio name=vote value="Nej." onclick="_vote('nej')"> Nej<br>
<input type=radio name=vote value="Va?" onclick="_vote('Va?')"> Va?<br>
</form>

:)

Jag gjorde precis så. Men det funkade inte för mig.
Kan det ha något med den här strängen att göra?

var url = "poll/poll.php?svar=";

Ska den se ut så? Behövs ?svar= också där?

mvh

Medlem sedan dec. 20025 483 inlägg
#6

På sidan poll.php får du extrahera värdet som "svar" tar med sig. Forumläret skickas alltså som "get" kan man säga ( istället för "post" ).

:)

Medlem sedan apr. 200312 679 inlägg
#7

aha okay... Men jag får det ej att funka ändå.
Rösten registreras inte. Vad kan vara fel?

(edit) Egentligen så behöver jag bara ett script som poppar upp från "Rösta" knappen. Resten funkar faktiskt.

<input type=submit value="Rösta" class="knapp" onclick="popup"> typ så :) hjälp :D

Medlem sedan dec. 20025 483 inlägg
#8

Nu är ju inte jag så familjär med PHP-syntaxen men eftersom inte formuläret skickas "på riktigt", så kan du inte använda någon specifik formulärmetod i PHP för att ta emot värdet. Istället får du möjligtvis använda reguljära uttryck eller någon strängfunktion för att plocka ut värdet.

:)

Medlem sedan apr. 200312 679 inlägg
#9

Uhm... okay? :) Jag är inte så haj på php själv så jag vet inte riktigt... Jag får väl helt enkelt använda det som Jesper T skrev. Det funkade ju, men då måste man trycka på en länk INNAN man ser någon popup. Lite tråkigt.

Medlem sedan dec. 20025 483 inlägg
#10

Ett tips är att fråga i PHP-forumet hur du extraherar ett specifikt värde i en frågesträng. Eftersom det förmodligen inte är så komplicerat kommer du nog att få ett snabbt svar ;)

:)

Medlem sedan apr. 200312 679 inlägg
#11

okej tack för tipset! Ska jag göra :)

Medlem sedan dec. 20025 483 inlägg
Medlem sedan apr. 200312 679 inlägg
#13

En sak till... När jag vet svaret hur man extraherar ett specifikt värde, vad ska jag göra då? :D

Medlem sedan dec. 20025 483 inlägg
#14

Det beror på vad som t.ex. skall visas i "popup"-fönstret. Om du hade tänkt att visa den aktuella ställningen i omröstningen så bör du ju spara värdet i en databas och därefter skriva ut hur många som röstat, samt hur många det är som har röstat antingen "Ja", "Nej" eller "Va?". Men som sagt, eftersom jag inte är någon hejare på PHP så är detta en fråga för PHP-folket ;)

:)

260 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)