webForumDet fria alternativet

Pop-up i omröstning

13 svar · 372 visningar · startad av silfver

silfverMedlem sedan apr. 200312 679 inlägg
#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

Jesper TMedlem 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>

Peter SMedlem 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>

:)

silfverMedlem sedan apr. 200312 679 inlägg
#4

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

mvh silfver!

silfverMedlem 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

Peter SMedlem 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" ).

:)

silfverMedlem 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

Peter SMedlem 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.

:)

silfverMedlem 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.

Peter SMedlem 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 ;)

:)

silfverMedlem sedan apr. 200312 679 inlägg
#11

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

Peter SMedlem sedan dec. 20025 483 inlägg
silfverMedlem 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

Peter SMedlem 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 ;)

:)

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