evilaidMedlem sedan apr. 2009433 inlägg Hej
jag använder AJAX för att hämta kod som finns i en fil "voteform.asp" och detta skrivs ut i en div på sidan..
Det som finns i voteform.asp är:
<%
id = request.querystring("rest")
%>
Betygsätt:
<a href="#" onmouseup="UseAjax(<%=id%>,'addvote.asp?rest=','l<%=id%>','img/waiting.gif','l<%=id%>','true');"><img src="img/darkstar.png" id="s1<%=id%>" onmouseover="changestar('1','<%=id%>')" border="0" /></a>
Grejen är den att när detta är utskrivet i div så funkar det inte, får bara syntax error.. Är det inte så att när man skickar med AJAx så blir vissa tecken knasig.. Kan man på något smidigt se hur resultatet blir när det skrivits ut?
Mvh
SPiNMedlem sedan mars 20007 896 inlägg Det bästa är att använda ett utvecklingsverktyg som Firebug för Firefox, vilket det även finns motsvarigheter till i IE8, Opera och Safari. Då kan du få ut all information som finns på sidan, vare sig det har kommit med Ajax eller om det laddas in från start.
evilaidMedlem sedan apr. 2009433 inlägg Ok. Men i raden ovan. Ser du m det är några tecken som skulle kunna bli fel när det skickats med ÀJAX. För jag får bara syntax fel när det skickats?
1. Kör Firebug till firefox/Chrome
2. Gå till din sida direkt eller postar det som en formpostning och se vad den generera
evilaid skrev:
Ok. Men i raden ovan. Ser du m det är några tecken som skulle kunna bli fel när det skickats med ÀJAX. För jag får bara syntax fel när det skickats?
Enklare hade ju varit om du:
1. Skickar den genererade koden (visa källa på dina asp sidor)
2. bifogar vad dina javascript funktioner gör.
Om du har querystring värde som är:
1'
så kommer du bryta ditt javascript.
evilaidMedlem sedan apr. 2009433 inlägg Ok, då ska vi se. Här är koden som anropar ajaxscriptet
response.write "<a href=""#"" onmouseup=""UseAjax("&db("id")&",'voteform.asp?&rest=','l"&db("id")&"','img/waiting.gif','l"&db("id")&"','true');"">Betygsätt</a>"
'l"&db("id")&"' anger bara namnet på den DIV där resultatet ska visas..
Loopar ut det med asp, därav response.write
strängen som skickas med ajax blir l "voteform.asp?rest=2"
voteform.asp
<%
id = request.querystring("rest")
%>
Betygsätt:
<a href="#" onmouseup="UseAjax(<%=id%>,'addvote.asp?rest=','l<%=id%>','img/waiting.gif','l<%=id%>','true');"><img src="img/darkstar.png" id="s1<%=id%>" onmouseover="changestar('1','<%=id%>')" border="0" /></a>
så ovan är det som ajax skickar tillbaka och när det är gjort ska man kunna klicka på på bilden (stjärna) och då skickas det betyget med ajax på nytt till en annan fil som regisrerar det i en databas..
Så det funkar så långt att jag får tillbaka koden från voteform.asp men när man sedan ska klicka på bilden för att skicka "röst resultatet" med ajax igen så blir det bara syntax error och inget händer
Jag är mycket väl medveten om hur ASP skrivs, men det har inte med saken alls att göra, du frågar om din kod är rätt, svaret är kanske och förmodligen är den rätt skriven, men om din asp variabel "id" innehåller ett tecken som bryter funktionen/attributet onmouseup så kommer den inte att fungera oavsett.
Vad funkar och vad funkar inte i din kod?
Hur ser din javascripts funktion ut (UseAjax)?
Vad händer om du anropar din asp fil direkt med de paramterer som krävs (addvote.asp) få du ett Server fel eller få du ut någon typ av data, mitt tips är att först få igång din ASP kod innan du kör en AJAX snurra med det.
evilaidMedlem sedan apr. 2009433 inlägg Sorry, inte så att jag misstror din kunskap..Fått hjälp otroligt många gånger av dig...
Det är ju så att all kod som står i voteform.asp är:
<%
id = request.querystring("rest")
%>
Betygsätt:
<a href="#" onmouseup="UseAjax(<%=id%>,'addvote.asp?rest=','l<%=id%>','img/waiting.gif','l<%=id%>','true');"><img src="img/darkstar.png" id="s1<%=id%>" onmouseover="changestar('1','<%=id%>')" border="0" /></a>
och du kan se resultat på denna adress.. http://www.sackar.se/voteform.asp?rest=2
detta skickas ju tillbaka till en DIV tagg i min index.asp fil. men då går det inte klicka på den.. AJAX scriptet ligger ju i index filen och ser ut så här.
//AJAX
function UseAjax(SendTxt,File,FieldToShowIn,img,FieldToView) {
//alert(File+SendTxt);
document.getElementById(FieldToShowIn).innerHTML="<img src='"+img+"' align='center'>";
var xmlhttp
{
if (SendTxt.length==0)
{
document.getElementById(FieldToShowIn).innerHTML="";
return;
}
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Your browser does not support XMLHTTP!");
return;
}
var url
url=File+SendTxt
//alert(url);
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById(FieldToShowIn).innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
}
evilaidMedlem sedan apr. 2009433 inlägg ajax scriptet i sig verkat funka helt ok för det leverar ju det som finns i voteform.asp till index.asp och DIV'en men när det är gjort så funkar inte länken?
har du ett element med ett ID som heter l<%=id%> ? Installera firebug så få du ett vettigare felmeddelande ;) eller bygg en enkel demo sida så man kan felsöka lite enklare
fast... du skickar ju ajax anropet till addvote.asp?rest= inte till addvote.asp?rest=2
vilket inte är fel heller enligt: http://www.sackar.se/voteform.asp?rest=
evilaidMedlem sedan apr. 2009433 inlägg ok, jag har uppdaterat firefox och installerat firebug men blev ju inte så klok på det..
Får pilla lite med det och se om jag kan återkomma med något vettigt..
evilaidMedlem sedan apr. 2009433 inlägg Nu har det äntligen löst sig, Tack för hjälpen och tack för tipset om Firebug. Utomordentligt bra att ha ibland:)
Hittade felet på den här raden:
response.write "<a href=""#"" onmouseup=""UseAjax("&db("id")&",'voteform.asp?&rest=','l"&db("id")&"','img/waiting.gif','l"&db("id")&"','true');"">Betygsätt</a>"
smygit in ett "&" i strängen..
Så här skulle det bli: http://www.sackar.se/test.asp
Att det skulle vara så svårt
P.S stjärnorna på slutet är ett snitt av alla röster..