Forum > Klientspråk > JavaScript
Hej!
Råkade snubbla över ett script i jQuery som jag tyckte var väldigt användbart. Hur som helst så är det som så att vid klick på en knapp så kommer en dialogruta upp med de värden som hämtats. Det jag undrar är hur man på bästa sätt hämtar den informationen och sätter in i strängar i klassisk ASP istället. Koden för scriptet ser ut som följer:
$('#b1').click(function ()
{
if (rawData)
{
var imgUrl = ($('#noThumb').attr('checked')) ? "" : $('#linkPropRawImgUrl').attr('src');
var s = "url: " + rawData.url + "\ntitle: " + rawData.title + "\ndescription: " + rawData.description + "\nimg: " + imgUrl;
alert("Todo - Save information: \n\n" + s);
}
});Tack på förhand!
| Skriv ut1. sätt .asp i din .js filer istället
2. säg åt din webbserver att köra aspkod i din .js fil också
3. sätt dina variabel i dina .asp filer och kör skripten och hämtar js variablernas värde ifrån din asp sida.
Okej, sen då hur drar jag enklast ut värderna? Jag menar t.ex:
Data1 = rawData.url
Antar jag inte kommer fungera direkt? (Sitter över mobilen så kan inte testa själv just nu. ;))
Data1 är en ASP variabel?
<script type="text/javascript">
var rawData = {
url: '<%=aspkod%>'
};</script>
Nja, vid närmare eftertanke så skulle det enklaste vara att på onclick-eventet, om det går skicka alla värden vidare i ASP-variabler till en annan sida (genom en querystring t.ex.). Så att de presenteras där sen och så att man kan t.ex. sedan använda dem till att skicka in i en databas osv. Efter att man t.ex. editerat det som behövs i ett formulär. Förstår du då vad jag försöker göra? :)
Du har en referens till vad du vill redigera (id) som du kan skicka med javascript/ajax/ny sida som du hämtar upp, att skicka värden i en QS har sina nackdelar då du inte kan ha hur långa texter som hellst.
Okej, återupptar detta gamla problem då det åter blivit aktuellt.
Ska försöka förklara det hela lite tydligare.
Jag har efter att viss kod gåtts igenom kommit fram till denna bit i mitt .asp dokument.
$('#b1').click(function ()
{
if (rawData)
{
var imgUrl = ($('#noThumb').attr('checked')) ? "" : $('#linkPropRawImgUrl').attr('src');
var s = "url: " + rawData.url + "\ntitle: " + rawData.title + "\ndescription: " + rawData.description + "\nimg: " + imgUrl;
alert("Todo - Save information: \n\n" + s);
}
});Denna kod körs när jag klicka på en knapp "submit". Då öppnas en dialog/varningsruta som presenterar vad "imgUrl" innehåller bland annat. I ett fall länkar den till http://www.1.se/bild.jpg kan vi säga. Samma med resten, titel, beskrivning osv, innehåller information som presenteras i denna dialogruta.
Det är denna information, lagrad i dessa variabler jag vill föra över till endera en variabel i ASP, eller en querystring, spelar ingen roll vilket av dem det är då varje sak innehåller rätt lite text och det är inget som innehåller känslig data direkt. Smidigast antar jag att det blir med en querystring, så att jag på en annan sida kan behandla datan och sedan t.ex. spara den i en databas, eller vad jag nu vill göra.
Problemet är att jag inte har den blekaste om hur jag ska göra detta, då jag är lika hemma på javascript (pinsamt nog fortfarande) som jag är på raketforskning, inget alls alltså. Så jag skulle behöva en riktigt "for dummies" beskrivning haha.
Igen: Vad kommer objektet rawData ifrån, spelar det någon roll var datan sätts? Hur ser resten av dokumentet ut?
Sen är javascript inte c#, { skall vara på samma rad för att slippa problem, exempelvis:
return
{
fubar: 'test'
}
return {
fubar: 'test'
}Resten av dokumentet klistrade jag in här: http://www.aspkoll.se/code/Index.asp?id=647
Hela detta är ett användbart script jag snubblade över för en tid sedan, så det är såklart inte jag som gjort något av detta. Om mera kod behöver laddas upp så säg till, för jag är fortfarande lite förvirrad över vad jag ens behöver leta efter för att fixa en lösning på detta.
Okej får fixa till det!
Försöker förstå mig på koden,
Du få ett JSON response tillbaka från din AJAX anrop, sen populera du den, Hur ser hela callbacken ut från JSON objektet? För jag få uppfattning när man tittar på lite av koden att den bara ge tillbaka en bild, men på många andra ställen så har den någon pagnerings kod.
Glömde helt av denna tråden och snubblade över den nu efter en sökning på annat. Löste problemet jag hade på annat sätt så antar att det är förklaringen till att den föll i glömska, men i brist på bättre att diskutera så kunde det vara roligt att lösa detta originalproblem.
Scriptet det handlade om var detta: http://jeppemannen.svenskablogg.se/...nd-classic-asp/
Vad jag ville göra var att skicka över den information variablerna i javascriptet innehöll, till variabler i ASP. Tittar vi i "Default.asp" handlar det om dessa rader alltså:
// eventhandler - Share button click
$('#b1').click(function ()
{
if (rawData)
{
var imgUrl = ($('#noThumb').attr('checked')) ? "" : $('#linkPropRawImgUrl').attr('src');
var s = "url: " + rawData.url + "\ntitle: " + rawData.title + "\ndescription: " + rawData.description + "\nimg: " + imgUrl;
alert("Todo - Save information: \n\n" + s);
}
});
});
Hur kunde man enklast ha löst detta?
Du delar med dig lite för lite kod, rawData kommer ifrån ett annat ställe som kommer ifrån http://www.pyramedia.se/sandbox/sve.../aftonbladet.se om man kollar demot.
Jag förstå inte vad du menar med variablen till ASP, vad är det för variabel du försöker sätta? Du måste göra någon typ av postning in till en server (ajax) och ASP är ju inte direkt det bästa språket att kunna skicka in ren JSON data
men använd objektet och postar den:
$.post("save.asp", rawData,function() {alert('saved');});Då förstår jag, är egentligen för lite påläst i JS för att ens sitta och leka med sådana här skript, blir inte bättre av att man överlag är lite ringrostig nu också efter ett långt uppehåll. ;)
Det jag försökte göra var att posta informationen till en databas, alltså att den information som tas fram efter att man klistrat in en länk i textboxen (precis som på t.ex. Facebook) skall kunna sparas i en databas sedan. I detta fallet istället t.ex. ersätta "Share" med "Spara". Jag ville därför dra ut informationen och sätta in dessa i ASP-variabler då jag antog att det var enklaste vägen.
Det jag försökte göra var att posta informationen till en databas, alltså att den information som tas fram efter att man klistrat in en länk i textboxen (precis som på t.ex. Facebook) skall kunna sparas i en databas sedan. I detta fallet istället t.ex. ersätta "Share" med "Spara". Jag ville därför dra ut informationen och sätta in dessa i ASP-variabler då jag antog att det var enklaste vägen.
Förstår jag dig rätt om jag gjort på följande sätt:
if (rawData)
{
var imgUrl = ($('#noThumb').attr('checked')) ? "" : $('#linkPropRawImgUrl').attr('src');
var s = "url: " + rawData.url + "\ntitle: " + rawData.title + "\ndescription: " + rawData.description + "\nimg: " + imgUrl;
$.post("LinkPost.asp?Action=Post", rawData,function() {alert('saved');});
}
});
});För det verkar tyvärr inte fungera, slängde snabbt ihop en DB, samt sida som ska skicka in informationen i DB:n, utdrag ur "LinkPost.asp"
If Request.QueryString("Action")="Post" Then
Lank = Request.Form("url")
Title = Request.Form("title")
Descrip = Request.Form("description")
strSQL="INSERT INTO TestTabell(Url, Title, Description, Image, Date) VALUES('"& Lank &"', '"& Title &"', '"& Descrip &"', '"& Lank &"', '"& Now() &"')"
Connect.Execute(strSQL)
Else
var imgUrl = ($('#noThumb').attr('checked')) ? "" : $('#linkPropRawImgUrl').attr('src');
var s = "url: " + rawData.url + "\ntitle: " + rawData.title + "\ndescription: " + rawData.description + "\nimg: " + imgUrl;