Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > JavaScript

Extrahera data från javascript till sträng i ASP

Roosweb
Roosweb

Gradering

#20116

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!

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
ID: #20116 | Skapades: 2010-09-04 02:39:35 | Tråden har 17 svar och har lästs 510 gånger.
Sida: 1 2

voigtan
voigtan

Gradering

#20117

1. 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.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20117 | Skapades: 2010-09-04 08:26:14

Roosweb
Roosweb

Gradering

#20119

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. ;))

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
ID: #20119 | Skapades: 2010-09-04 13:00:10

voigtan
voigtan

Gradering

#20120

Data1 är en ASP variabel?

 

<script type="text/javascript">
var rawData = {
    url: '<%=aspkod%>'
};</script>
Är det detta du undrade över?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20120 | Skapades: 2010-09-04 15:30:18

Roosweb
Roosweb

Gradering

#20121

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? :)

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
ID: #20121 | Skapades: 2010-09-07 01:28:16

voigtan
voigtan

Gradering

#20122

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.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20122 | Skapades: 2010-09-07 06:38:53

Roosweb
Roosweb

Gradering

#20475

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.

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
ID: #20475 | Skapades: 2010-12-13 20:31:31

voigtan
voigtan

Gradering

#20477

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'
}
Kommer retunera ett tomt objekt medans:

return {
fubar: 'test'
}
kommer retunera ett objekt med en property 'fubar' med värdet 'test'.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20477 | Skapades: 2010-12-14 06:51:00

Roosweb
Roosweb

Gradering

#20478

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!

 

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
ID: #20478 | Skapades: 2010-12-14 11:24:26

voigtan
voigtan

Gradering

#20481

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.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20481 | Skapades: 2010-12-14 18:45:08

Roosweb
Roosweb

Gradering

#21323

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?

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
ID: #21323 | Skapades: 2012-02-07 02:41:12

voigtan
voigtan

Gradering

#21324

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');});
och då har du requets.form("url"), request.form("title") och request.form("description") att ta hand om

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 7 februari 2012. Läs tidigare inlägg.
ID: #21324 | Skapades: 2012-02-07 07:34:39

Roosweb
Roosweb

Gradering

#21325

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.

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
Redigerades av Roosweb den 7 februari 2012. Läs tidigare inlägg.
ID: #21325 | Skapades: 2012-02-07 18:15:26

voigtan
voigtan

Gradering

#21326

Citerar Roosweb:

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.

Och det kan du ju göra inne i din if rawdata så lägg in kod exempelet (med rätt url till din asp fil) så skickar du datan.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #21326 | Skapades: 2012-02-07 18:27:24

Roosweb
Roosweb

Gradering

#21327

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


Det verkar som att det inte finns några värden att hämta ut och där stannar scriptet, skriver jag istället ut strängen dyker popupen upp med "saved".

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
Redigerades av Roosweb den 7 februari 2012. Läs tidigare inlägg.
Redigerades av Roosweb den 7 februari 2012. Läs tidigare inlägg.
Redigerades av Roosweb den 7 februari 2012. Läs tidigare inlägg.
Redigerades av Roosweb den 7 februari 2012. Läs tidigare inlägg.
Redigerades av Roosweb den 7 februari 2012. Läs tidigare inlägg.
ID: #21327 | Skapades: 2012-02-07 19:24:02

voigtan
voigtan

Gradering

#21328

var imgUrl = ($('#noThumb').attr('checked')) ? "" : $('#linkPropRawImgUrl').attr('src');

var s = "url: " + rawData.url + "\ntitle: " + rawData.title + "\ndescription: " + rawData.description + "\nimg: " + imgUrl;
kan du ju ta bort, du gör ju inget med dom ändå.

sen beror det på hur din JSON objekt  ser ut, men om det är samma som exemplet så är det korrekt.

Kolla i firebug och se vad som händer med din $.post() förmodlgen ett server fel.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 7 februari 2012. Läs tidigare inlägg.
Redigerades av voigtan den 7 februari 2012. Läs tidigare inlägg.
ID: #21328 | Skapades: 2012-02-07 20:04:36
Sida: 1 2
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy