Just nu i M3-nätverket
Jump to content

Hur visa tackmeddelande i ett lager i ställer för popup i en "tipsa en vän" funktion?


Martin79

Recommended Posts

Har en "tipsa en vän" funktion som ligger i ett lager i stället för en normal popupruta. När man kör vanlig popup kan man använda header("Location: $thankyoupage"); för att i samma ruta visa ett tackmeddelande. Hur gör man när det ligger i ett lager?

 

Link to comment
Share on other sites

Jag skulle köra på AJAX:

Lagret visar formulär med Från-namn, Från-epost, Till_namn, Till-epost samt meddelande. När man klickar på Skicka så postas informationen till en sida i bakgrunden som skickar mailet med någon lämplig funktion. Sidan som formuläret skickas till får antingen innehålla PHP- eller ASPkod för att hantera mailfunktionaliteten.

Om formuläret skickats korrekt visas ett meddelande om att mailet skickats alternativt ett felmeddelande om det inte gjort det.

 

Hur du använder AJAX - sök i forumet.

 

Edit: Förtydligande: Varför man skall använda AJAX istället för sedvanlig metod är att med AJAX behöver man inte ladda om sidan för att skicka formuläret.

 

 

Och lycka till!

 

 

 

 

 

[inlägget ändrat 2007-01-10 01:49:32 av Jonas_Bo]

Link to comment
Share on other sites

PHP-koden för själva "tipsa en vän" och koden runt om är redan klart. Har aldrig varit i kontakt med AJAX så jag behöver nog något mer eller mindre konkret/färdigt exempel för just flera lager vilket jag inte hittade här på forumet. Annars är en variant att lägga in ett javascript i stället, fast AJAX hade varit snyggare ;)

 

Link to comment
Share on other sites

Jodå, jag är övertygad om att jag gett exempel flera gånger på AJAX härinne. Jag postar om ett av mina exempel igen så kan du utgå från detta. Det enda asp-filen gör som anropas i bakgrunden är att returnera aktuell tid, men jag tror du ser principen för hur kommunikationen sker.

 

[log]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>Ajax Timer</title>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
var oAjax;
var oUserFnc;
var sServerScript="http://dindomän/sida.asp"
// Den användarfunktion som tar emot den hämtade datan
// Det är här du skall ändra vad som skall göras med den.
// I mitt fall lägger jag in värdet i en DIV
function UserFunction(sData) {
o=document.getElementById('Counter');
o.innerHTML=sData;
}

// I mitt exempel skickar jag inga parametrar till serverscriptet
// så det får vi utöka senare.
function SendRequest(oFunction) { 
oUserFnc=oFunction;
var sUrl=sServerScript;
oAjax=GetXmlHttpObject(StateHasChanged) 
oAjax.open("GET", sUrl , true) 
oAjax.send(null) 
} 
// Följande funktion kontrollerar om datan är färdighämtad.
// Om den är det anropas användarfunktionen med den data som 
// hämtades.
function StateHasChanged() { 
if (oAjax.readyState==4 || oAjax.readyState=='complete') { 
	sData=oAjax.responseText;
	oUserFnc(sData);
} 
} 
// Olika läsare kräver olika metoder för att 
// skapa Ajax-objektet. 
function GetXmlHttpObject(oHndl) { 
var oXH=null;
var oAg=navigator.userAgent;
if (oAg.indexOf("MSIE")==-1 && (oAg.indexOf("Opera")>=-1 || oAg.indexOf("Mozilla")>=-1)) {
	oXH=new XMLHttpRequest();
	oXH.onload=oHndl;
	oXH.onerror=oHndl;
	return oXH;
}
if (oAg.indexOf("MSIE")>=-1) { 
	sCls="Msxml2.XMLHTTP";
	if (oAg.indexOf("MSIE 5.5")>=-1)
		sCls="Microsoft.XMLHTTP";
	try { 
		oXH=new ActiveXObject(sCls);
		oXH.onreadystatechange=oHndl; 
		return oXH;
	} catch(e) { 
		alert("ActiveX-scriptning verkar vara avslaget");
		return ;
	} 
}
} 
// Vid start av sidan, slå på timern för att köra en request
// varje 1000:e millisekund
function Init() {
setInterval('SendRequest(UserFunction)',1000);
}
//-->
</SCRIPT>
</head>

<body onload="Init();">
<div id="Counter" style="height:20px;width:100px;border:1px solid black;"></div>


</body>
</html>

[/log]

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...