webForumDet fria alternativet

Varför får jag inte koden att fungera (Formulär öppnas i en div med Ajax)

JavaScript

4 svar · 562 visningar · startad av xtreme

Medlem sedan juli 20002 056 inlägg
Frågan#1

Varför fungerar det inte att skicka formuläret samt att man inte får några varningar om man inte fyllt i alla fält? Dock funkar en vanligt länk som jag gjort från texten kompis (mest för att testa) samt att formuläret öppnas i min div i Opera men inte i IE.

Startsidan med en div som jag vill formuläret ska öppnas i:

<script type="text/javascript"> 
var http = false; 

if(navigator.appName == "Microsoft Internet Explorer") { 
  http = new ActiveXObject("Microsoft.XMLHTTP"); 
} else { 
  http = new XMLHttpRequest(); 
} 

function replace() { 
  http.open("GET", "recommend.htm", true); 
  http.onreadystatechange=function() { 
    if(http.readyState == 4) { 
      document.getElementById('foo').innerHTML = http.responseText; 
    } 
  } 
  http.send(null); 
} 
</script> 

<p><a href="javascript:replace()">Replace Text</a></p> 

<div style="width: 500px; height: 500px;" id="foo"> 
  Hello, world! 
</div>

Formuläret (recommend.htm) som öppnas i min div:

<script language="javascript"> 
<!-- 

function reset() { 
document.tellafriend.name.value=""; 
document.tellafriend.email.value=""; 
document.tellafriend.fmail1.value=""; 
document.tellafriend.fmail2.value=""; 
} 

function validate() { 

if (document.tellafriend.fmail1.value.length==0) { 
alert("Du glömde skriva din kompis E-mail"); 
return false; 
} 

if (document.tellafriend.email.value.length==0) { 
alert("Du glömde skriva din E-mail"); 
return false; 
} 
if (document.tellafriend.name.value.length==0) { 
alert("Du glömde skriva ditt namn"); 
return false; 
} 

document.tellafriend.submit() 
return true; 
} 

//--> 
</script> 
</head> 
<body onload="reset()"> 
<fieldset class="wrap"> 
<? $refurl = $_SERVER['HTTP_REFERER']; ?> 
<? print $refurl;?> 
<form name="tellafriend" action="tellafriend.php" method="post" onsubmit="return checkfields()">  
        
    <p class="loggain">Tipsa en <a href="test1.html">kompis</a>.</p> 
        <p>F&auml;lt m&auml;rkta med * &auml;r obligatoriska.</p> 
        
       <p class="tipsleft"> 
   * Ditt namn:<br /> 
   <input size="25" name="name" maxlength="45" /> 
   </p> 
   <p class="tipsright"> 
   * Din mail:<br /> 
   <input size="25" name="email" maxlength="45" /> 
   </p> 
   <p style="clear: both;">&nbsp;</p> 
    
   <p class="tipsleft"> 
   * Din kompis mail:<br /> 
   <input size="25" name="fmail1" maxlength="50" /> 
   </p> 
   <p class="tipsright"> 
   Din andra kompis mail:<br /> 
   <input size="25" name="fmail2" maxlength="50" /> 
   <br /> 
   <br /> 
   <input name="button" type="button" onclick="validate();" value="Skicka tipset" /> 
   <input type=hidden name=refurl value="<? print $refurl;?>"> 
   </p> 
   <p style="clear: both;">&nbsp;</p> 
</form> 
</fieldset>

Koderna kommer ursprungligen från:
http://daniel.lorch.cc/docs/ajax_simple/
http://www.tamingthebeast.net/articles3/tell-a-friend-script.htm

Medlem sedan juni 20031 837 inlägg
#2

du öppnar body-taggen i din recommend.htm fil men tränger den aldrig, den borde inte vara med där alls.

börja med att testa utan den.

Medlem sedan juli 20002 056 inlägg
#3

The_Hulk skrev:

du öppnar body-taggen i din recommend.htm fil men tränger den aldrig, den borde inte vara med där alls.

börja med att testa utan den.

På min "riktiga" sida stänger jag den. Postar ett kodexemepl där jag har med <head><body> etc (som inte fungerar):

Startsidan som formuläret öppnas i:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Tipsa</title>
<script type="text/javascript">
var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
  http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
  http = new XMLHttpRequest();
} 

function replace() {
  http.open("GET", "recommend.htm", true);
  http.onreadystatechange=function() {
    if(http.readyState == 4) {
      document.getElementById('foo').innerHTML = http.responseText;
    }
  }
  http.send(null);
}
</script>
</head>
<body>
<p><a href="javascript:replace()">Replace Text</a></p>
<div style="width: 500px; height:500px;" id="foo">
  Hello, world!
</div>
</body>
</html>

Formuläret (recommend.htm):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Rekomendera</title>
<script language="javascript"> 

function reset() { 
document.tellafriend.name.value=""; 
document.tellafriend.email.value=""; 
document.tellafriend.fmail1.value=""; 
document.tellafriend.fmail2.value=""; 
} 

function validate() { 

if (document.tellafriend.fmail1.value.length==0) { 
alert("Du glömde skriva din kompis E-mail"); 
return false; 
} 

if (document.tellafriend.email.value.length==0) { 
alert("Du glömde skriva din E-mail"); 
return false; 
} 
if (document.tellafriend.name.value.length==0) { 
alert("Du glömde skriva ditt namn"); 
return false; 
} 

document.tellafriend.submit() 
return true; 
} 
 
</script> 
</head>

<body onload="reset()">
<fieldset class="wrap"> 
<? $refurl = $_SERVER['HTTP_REFERER']; ?> 
<? print $refurl;?> 
<form name="tellafriend" action="tellafriend.php" method="post" onsubmit="return checkfields()">  
        
    <p class="loggain">Tipsa en <a href="test1.html">kompis</a>.</p> 
        <p>F&auml;lt m&auml;rkta med * &auml;r obligatoriska.</p> 
        
       <p class="tipsleft"> 
   * Ditt namn:<br /> 
   <input size="25" name="name" maxlength="45" /> 
   </p> 
   <p class="tipsright"> 
   * Din mail:<br /> 
   <input size="25" name="email" maxlength="45" /> 
   </p> 
   <p style="clear: both;">&nbsp;</p> 
    
   <p class="tipsleft"> 
   * Din kompis mail:<br /> 
   <input size="25" name="fmail1" maxlength="50" /> 
   </p> 
   <p class="tipsright"> 
   Din andra kompis mail:<br /> 
   <input size="25" name="fmail2" maxlength="50" /> 
   <br /> 
   <br /> 
   <input name="button" type="button" onclick="validate();" value="Skicka tipset" /> 
   <input type=hidden name=refurl value="<? print $refurl;?>"> 
   </p> 
   <p style="clear: both;">&nbsp;</p> 
</form> 
</fieldset>
</body>
</html>
Medlem sedan juni 20031 837 inlägg
#4

du bygger upp en felaktig sida.
du kan inte ha med html, head, body-taggar i sidan du läser in och klistrar in i div-taggen.

du kan ju testa att bara kopiera in all kod från recommend.htm till div-taggen och se hur det ser ut.

Medlem sedan juli 20002 056 inlägg
#5

Underbart!

Tack nu funkade det!

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)