Avatar billede wordwrap Nybegynder
01. juni 2005 - 13:40 Der er 16 kommentarer og
1 løsning

script, virker ikke hvis alert fjernes, dog kun på nogen pc´ere

den her gir ingen mening i min verden... nogen der har et godt forslag ??

kører den her kode, når en form submittes:

function frm_submit(){
   
var varenr = document.getElementById("ProductId").value;
var varenr_array = varenr.split(",");

for (var i=0; i < varenr_array.length; i++)
{


window.parent.basket.location='http://enside.dk/basket.asp?Add=1&ProductId=' + varenr_array[i] +'&AMOUNT=1';
}
}    

ovenstående script virker ikke på min pc.. vil sige, at kun den sidste vare kommer i kurven...

ændrer jeg scriptet til:

function frm_submit(){
   
var varenr = document.getElementById("ProductId").value;
var varenr_array = varenr.split(",");

for (var i=0; i < varenr_array.length; i++)
{

alert(varenr_array[i])
window.parent.basket.location='http://enside.dk/basket.asp?Add=1&ProductId=' + varenr_array[i] +'&AMOUNT=1';
}
}

virker det fint.. vil igen sige.. at alle varer kommer i kurven.. men har så den trælse popup, som jeg havde på mens jeg testede....

nogen ideer om hvorfor ?????

/strange
Avatar billede wordwrap Nybegynder
01. juni 2005 - 13:45 #1
må hellere lige nævne at først nævnte kode virker fint på 2 andre pc´ere... begge kører XP og ie som browser... hvilket min også gør...

har testet ved mig selv i opera og firefox.. der virker det heller ikke, med mindre jeg har alert med..
Avatar billede krhansen Nybegynder
01. juni 2005 - 15:23 #2
Du får sikkert fyret requestene til basket.asp for hurtigt af, så den ikke når at sende den ene, før den får den næste. Prøv at indsætte lidt forsinkelse i løkken og se, om ikke det gør en forskel.
Avatar billede olebole Juniormester
01. juni 2005 - 23:24 #3
<ole>

Nej, det vil altid blive en skidt løsning. Det er ikke til at gætte, hvorlang tid der skal ventes. I øvrigt kan man ikke lave en ordentlig 'sleep' funktion i et JS-loop  :)

Du burde finde en helt anden approach, men hvordan er ikke til at sige uden at kende resten af din kode

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
01. juni 2005 - 23:27 #4
"men hvordan er ikke til at sige" - vær nu ikke så beskeden, Ole. Ville du
ikke foreslå spørgeren den simple løsning at klare alt indkøbskurven vedrørende
på serversiden? Dels er det sådan alle andre gør, dels vil det umiddelbart virke.

Altså: når du submitter din form med afkrydsede eller indtastede varer, tager et
ASP-script fat i formen, og putter tingen i indkøbsvognen, hvordan den så end
er implementeret.
Avatar billede olebole Juniormester
02. juni 2005 - 00:45 #5
Det var såmænd blot for at springe det indlæg over, vi vel begge forventer - på trods af dit sidste punktum  :)
Avatar billede wordwrap Nybegynder
02. juni 2005 - 12:25 #6
sagen er desvære sådan at jeg ikke har mulighed for at pille i den måde kurven behandler data´erne på...

siden jeg arbejder på, bliver includeret fra en anden server, og jeg har ikke andre muligheder end at sende de varer der skal i kurven, på andre måder end med et direkte link til kurven...

kurven er desvære lavet sådan, at jeg på den måde som det skal køre, ikke kan sende mere end en vare af gangen. Så ved ikke helt hvordan jeg ellers sku gribe det an ??.

Har snakket lidt med dem der står for den kurv, og deres bedste forslag er at jeg må prøve og smide et delay ind, som krhansen forslog.. og der er ikke andre muligheder end at jeg render alle de varer igennem, og sender dem afsted en af gangen.
Avatar billede wordwrap Nybegynder
02. juni 2005 - 14:08 #7
nogen der har et forslag til hvordan man bedst sætter en delay ind ?? har kigget lidt på settimeout, mens syns ik rigtig det virker...
Avatar billede erikjacobsen Ekspert
02. juni 2005 - 19:19 #8
Jeg synes det er synd for dig, strange. Du har ikke mulighed for at skifte job,
eller gøre noget andet for at få et meningsfyldt liv?

Jeg synes bare det er så træls når man skal kæmpe med noget så inderligt ligegyldigt.
Avatar billede roenving Novice
03. juni 2005 - 03:34 #9
Du kunne f.eks. forlange, at dine brugere ikke havde mere hukommelse end 32Mb og en processor, som højest kørte med 200MHz og så indsætte en forsinkelse på f.eks. 200 ms mellem hver tilføjelse til varekurven ?-)
Avatar billede olebole Juniormester
03. juni 2005 - 08:51 #10
Nej, der er ikke nogen, derkan give dig et forslag til et delay ... ikke noget godt forslag i hvert fald. Eneste udvej er en anden approach  :)

Naturligvis havde det været bedst, det ikke var en amatør, der havde kodet kurven, som du åbenbart er tvunget til at kæmpe med. Da det ikke er tilfældet, må vi jo prøve at finde en udvej - og én løsning kunne være noget à la:

<script type="text/JavaScript">
function frm_submit() {
    var varenr = document.getElementById("ProductId").value;
    var varenr_array = varenr.split(",");

    for (var i=0; i < varenr_array.length; i++) {
        var fr = document.createElement("iframe");
        fr.style.display = "none";
        fr.src = "http://enside.dk/basket.asp?Add=1&ProductId=" + varenr_array[i] +"&AMOUNT=1";
        document.body.appendChild(fr);
    }

</script>

- der opretter en skjult iframe for hver vare - som hver især kalder kurven. Ikke den fede løsning, men mere realistisk end det, du har kørende lige nu.
Kommer jeg i tanker om noget bedre, når jeg er vågnet rigtigt, skal jeg nok smide en kommentar mere  ;o)
Avatar billede wordwrap Nybegynder
03. juni 2005 - 10:02 #11
ole .. jeg prøver dit forslag... og skulle du komme på noget andet, så hører jeg gerne det os :D

roenving... hehe... bange for det ik lige går :-s
Avatar billede olebole Juniormester
03. juni 2005 - 10:10 #12
Vi kunne også tage fat i den anden ende: Hvordan ender varerne i feltet 'ProductId' - og hvorfor? Var det mon ikke en idé at lægge dem i kurven én ad gangen?

<script type="text/JavaScript">
function myAdd2Basket(id) {
    var fr = document.getElementById("loadFR");
    fr.src = "http://enside.dk/basket.asp?Add=1&ProductId=" + id +"&AMOUNT=1";
}
</script>

<iframe id="loadFR" style="display:none"></iframe>

<a href="#" onclick="myAdd2Basket(123);return false">Læg en gnukalv i kurven</a><br>
<a href="#" onclick="myAdd2Basket(234);return false">Læg et kalkun krøllejern i kurven</a><br>
<a href="#" onclick="myAdd2Basket(345);return false">Læg en golfkuglevasker i kurven</a>
Avatar billede olebole Juniormester
03. juni 2005 - 10:24 #13
PS: Er der tale om varer, der bliver krydset af i flere checkbokse på samme side, kunne det evt. gøres med:

<script type="text/JavaScript">
function myAdd2Basket(elm,id) {
    var fr = document.getElementById("loadFR");
    var addDelete = (elm.checked)? 1 : 0;
    fr.src = "http://enside.dk/basket.asp?Add=" + addDelete + "&ProductId=" + id +"&AMOUNT=1";
}
</script>

<iframe id="loadFR" style="display:none"></iframe>

<input type="checkbox" onclick="myAdd2Basket(this,123)">

Den skifter værdien af request-variablen 'Add' mellem 1 og 0 - alt efter om checkboksen check'es eller ej. Om det er sådan, man lægger i kurven og fjerner igen, ved jeg ikke - men det viser princippet i, hvordan det kunne gøres  :)
Avatar billede wordwrap Nybegynder
03. juni 2005 - 10:44 #14
Skal lige være sikker på jeg har forstået det du mener korrekt..

når en vare bliver valgt i formen, bliver den med det samme lagt i kurven ??

Umiddelbart var det jo en løsning... tror bare jeg ender i et andet problem der..

når en vare skal slettes fra kurven igen, benytter de ikke varenummeret længere men en såkaldt KeyId, som jeg ikke lige kender...

For lige at svare på det andet spørgsmål..

varene ender i feltet ProductId, når en vare bliver valgt (i enten en select eller checkbox.).. grunden til at de ender der, er sådan set ik andet end at, jeg der nemt kunne fange de valgte varer og rende dem igennem.

ProductId er et hidden felt, som lister varene numrene efter hinanden, delt med , (som du nok har benærket.)

select boksene og ckeckboksene kalder en function, ved onchance som kontrollere formen, og lister de valgte varer, regner en pris ud osv....


På en eller anden kan jeg godt li ideen om at smide varen i kurven, når den bliver valgt, skal så bare finde en løsning på, at få dem slettet igen.. men mon ik det kunne løses :D

Håber det ga lidt mening.. ellers råber du bare højt ;)
Avatar billede wordwrap Nybegynder
03. juni 2005 - 12:31 #15
nå... kunne være det var på tide og få lukket det her spg...

Ole.. syns du skal ha lidt point, for dine forslag.. ender nok med at benytte noget i den stil..

/strange
Avatar billede roenving Novice
29. juli 2005 - 02:06 #16
... måske lige en reminder til dette, som stammer fra den mail-løse periode !-)
Avatar billede wordwrap Nybegynder
10. august 2006 - 00:35 #17
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester