Avatar billede donkazz Nybegynder
29. januar 2006 - 15:37 Der er 10 kommentarer og
1 løsning

Submit laaang form men kun gem felter der har en værdi

Jeg har en liste på ca. 100 produkter som alle har en plusknap, for at tilføje 1 til kurven, samt et lille input felt hvor man kan taste et tal ind. Lidt alá funktionen på just-eat.dk.

Problemet er lidt, eller mere det upraktiske i det vil jeg sige, at man ikke kan taste en masse tal ind i produkternes felter hele vejen ned, og så tilføje en masse produkter til kurven på samme tid.

Så jeg skal have lavet det lidt om, sådan så man enten kan taste tal ind hele vejen ned og så submitte hele formen, hvor der så skal være en funktion, enten javascript eller asp, eller en kombination, som så smider de indtastede felter ind i den session der hedder kurv. Men hvis man kun trykker på et plustegn ud for et produkt, skal der kun tilføjes 1 produkt. Som det er nu, så har hvert produkt sin egen form, men det kan jeg forstille mig skal laves om til een stor form.

Nogle forslag eller eksempler jeg evt. kan bruge med lidt justering?
Avatar billede gentoo2005 Nybegynder
29. januar 2006 - 16:35 #1
problemet er jo kun at JS er meget dårlig til alt andet end <input> felter, ellers var det bare at loope det igennem.

Men hvorfor ikke bare loope post data'en i ASP, og så lave checket der ? Ellers ender du med noget ekstremt rodet kode.
Avatar billede donkazz Nybegynder
29. januar 2006 - 18:06 #2
Så jeg skal tjekke i ASP koden om alle input felter har noget i sig?
Avatar billede olebole Juniormester
30. januar 2006 - 03:30 #3
<ole>

gentoo2005 >> JS er ikke "meget dårlig til alt andet end <input> felter" - men der er en hel del kodere, der er meget dårlige til JS. Faktisk handler dine problemer slet ikke om JS, men om ECMA-DOM bindingerne - men heller ikke dér er der problemer med form-elementer  :)

donkazz >> Du kan bladre elementerne igennem og disable de inputs, der ikke har en value - eller samme value, som deres default-value - og evt. checkbokse og radioknapper, der ikke er valgt. Noget à la:

<script type="text/JavaScript">
function disableElms(f) {
    var sType, oNames={}, aElms=f.elements;
    for (var i=0; i<aElms.length; i++) {
        sType = aElms[i].type;
        if (sType=="radio"||sType=="checkbox") oNames[aElms[i].name]=1;
        else if (sType=="select-one"&&aElms[i].value==-1) aElms[i].disabled = true;
        else if (sType=="select-multi"&&aElms[i].selectedIndex==-1) aElms[i].disabled = true;
        else if (aElms[i].value==""||aElms[i].value==aElms[i].defaultValue) aElms[i].disabled = true;
    }
    for (x in oNames) {
        aElms = document.getElementsByName(x);
        for (i=0; i<aElms.length; i++) if (aElms[i].checked==false) aElms[i].disabled = true;
    }
    return true;
}
</script>

<form ........... onsubmit="return disableElms(this)">


- men det kræver, at du i alle selects (dropdowns ... ikke 'multies') laver en første option med value="-1":
    <option value="-1">Vælg ...</option>

/mvh
</bole>
Avatar billede donkazz Nybegynder
30. januar 2006 - 23:58 #4
Uha det ser indviklet ud.. Hvad gør jeg hvis det ikke er selects, men input felter? Det kan man måske ikke?
Avatar billede roenving Novice
31. januar 2006 - 15:01 #5
-- den disabler alle form-elementer, der ikke har fået en ny eller sat en værdi !-)
Avatar billede donkazz Nybegynder
04. februar 2006 - 11:43 #6
Okay ... men det er lidt skidt jo, for som det er nu bliver der tilføjet 1 hvis man ikke taster noget. Så skulle jeg fjerne den mulighed, sådan så man SKULLE skrive et nr. i feltet?
Avatar billede olebole Juniormester
04. februar 2006 - 12:19 #7
donkazz >> Det forstår jeg ikke. Jeg er ikke helt klar over, hvad det er, du vil ... og på mig virker det, somom vi er i samme situation  :)
Avatar billede donkazz Nybegynder
04. februar 2006 - 12:22 #8
Hehe ja okay det var måske også lidt dårligt forklaret. Men altså, hvis man IKKE skriver noget i det inputfelt der er ud for et produkt, men bare trykker på plus-tegnet ved siden af det, så tilføjer den automatisk kun 1 stk. produkt til kurven. Men som jeg kan se det, så virker det ikke her, da scriptet deaktiverer alle tomme inputfelter, right? Og så ville jeg bare høre om der var en løsning på det, eller om jeg bare skal droppe det med at trykke på et plustegn... :)
Avatar billede olebole Juniormester
04. februar 2006 - 12:25 #9
Det er vist ikke noget, jeg har kinamands chance for at udtale mig om. Når du har besluttet dig for, hvordan din shop skal fungere - set fra brugerens position - og forklarer mig det i enkeltheder, kan jeg hjælpe dig med en løsning. Ellers er det lidt svært  :)
Avatar billede donkazz Nybegynder
04. februar 2006 - 12:38 #10
Nåmen så har jeg besluttet mig, det var bare hvis det var umuligt det andet, så kunne jeg godt ændre planen for funktionen. :)

Så hvis man trykker på plustegnet udfor et produkt, skal den tilføje det man har tastet ind i input feltet til venstre for produktet. Hvis man ikke har tastet noget ind, og trykker på plustegner, skal den kun tilføje 1 stk. af produktet.
I bunden af siden skal der tillige være en "Tilføj mange" funktion, som gør at man kan taste tal ind i alle de input-felter man vil, hele vejen ned igennem siden, og så trykke på denne knap, der så deaktiverer alle de steder man ikke har tastet noget ind, og tilføjer de produkter hvor man HAR tastet noget ind.

:)
Avatar billede donkazz Nybegynder
12. oktober 2007 - 11:36 #11
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