webForumDet fria alternativet

problem med att posta en form till ett nytt fönster

PHP

3 svar · 225 visningar · startad av Qonos

Medlem sedan sep. 2000438 inlägg
Frågan#1

jag har denna formen:

<?php
echo "<form action=javascript:vote('vote.phtml'); method='post'>";
$sqlquery = "SELECT * from tblPollAnswer where pollid = ".$RowPoll["id"];
$rsanswer = mysql_query($sqlquery);
while ($rowanswer = mysql_fetch_array($rsanswer))
{
	echo "<input type='radio' name='answer' value='".$rowanswer["id"]."'>".$rowanswer["value"]."<br>";
}
echo "<input type='submit' name='btnvote' value='rösta' class='white-form-btn'>";
echo "</form>";
?>

och den använder sig av detta javascriptet:

<script language="JavaScript" type="text/javascript">
<!--
function vote(url)
{
	egenskaper="toolbar=no,directories=no,height=200,width=300,menubar=no,location=no,status=no,scrollbars=no";
	unik=new Date();
	unik=unik.getSeconds()+"_"+unik.getMinutes()+"_"+unik.getHours();
	window.open(url,unik,egenskaper);
}
//-->
</script>

men när jag sen försöker skriva t.ex.
echo $answer;

i "vote.phtml" så verkar den variabeln inte finnas där =(

Warning: Undefined variable: answer in /web/XXXX/htdocs/vote.phtml on line 29

echo $answer;

Kan det vara så jävligt att javascriptet gör så att värdena inte skickas med??

[Redigerat av Qonos den 21 dec 2001]

Medlem sedan nov. 200013 890 inlägg
#2

Felmeddelandet "Undefined variable" får du eftersom du inte deklaretar variabeln och du har inställningen att man måste göra det.

Det går att kommentera bort en rad i php.ini så slipper du felmeddelandet.

Sök på "Undefined variable" så hittar du nog svaret. ;)

------------------
/Tor
www.tor.nu

Medlem sedan sep. 2000438 inlägg
#3

jo men jag vill ju ha felmeddelandet, men det var inte det som var problemet ;) problemet var ju att variabeln inte följde med till det fönstret.. hade den bara gjort det hade inte felmeddelandet kommit upp ju :)

Medlem sedan aug. 20002 975 inlägg
#4

Kan det vara så jävligt att javascriptet gör så att värdena inte skickas med??

Precis så är det. Du skickar aldrig iväg dina variabler, du öppnar bara en ny sida.
Ett sätt är att ladda dina variabler i en session. Popupen hämtar upp dessa värden och förstör sessionen.

Principen i ett exempel:

En fil vid namn form.php

<?php  
session_register("fornamn");
session_register("efternamn");
if (isset($fornamn)){
?>
<script type="text/javascript">
<!--
NewWin=window.open ("popup.php",'NewWin','location=no,menubar=no,directories=no,scrollbars=no,resizable=no,status=no,width=300,height=200,top=200,left=200');
// -->
</script>
<?php } ?>
<html>
<head>
<title>Fönstertest Form</title>
<body>
<form action="form.php" method="post">
Förnamn: <input name="fornamn" type="text"><br>
Efternamn: <input name="efternamn" type="text"><br>
<input type="submit">
</form>
</body>
</html>

En fil vid namn popup.php

<?php  
session_register("fornamn");
session_register("efternamn");
?>
<html>
<head>
<title>Fönstertest Resultat</title>
<body>
<?php 
if (isset($fornamn)&&isset($efternamn)){
echo "Jag heter $fornamn $efternamn";
} else {
?>
Denna sida kan inte visas direkt. Gå via <a href="form.php">denna sida</a>.
<?php 
}
session_unregister("fornamn");
session_unregister("efternamn");
?>
</body>
</html>

------------------
Fiskesällskapet Salamander

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