Jeg er på utkikk etter en plugin som skal fungere som en “forløper” til en allerede eksiterende nettbutikk. Det skal være to, tre rullegardiner hvor man kan velge mellom noen alternativer i hver, og så skal det vises en pris som forandres etter hva man velger. Antar at det da er Ajax som er tingen her.
Jupp, Ajax kan nok brukes.
jQuery har for eksempel en del Ajax funksjoner som gjør slikt som dette litt enklere å sette opp, er i grunn ikke noe hokuspokus dette, men vet ikke om noen plugin’s i farten.
Du kan jo søke på jQuery sine sider etter noe som kanskje passer, hvis ikke må du lage det selv eller få noen til å lage det for deg.
Sikkert andre ting som kan brukes også, dette høres i grunn ut som noe som er enkelt å spikke sammen i RoR, men ikke alle webservere støtter dette, og det blir kanskje litt sært i forhold til Ajax/jQuery.
Her er vel Nutz inne på noe vesentlig, og jeg tog an ikkje helt med en gang der.
Jeg tenkte mer på dynamiske endringer, slik som nettbutikker ofte har når man for eksempel kommer inn på siden til ett visst produkt, så er det ofte en meny hvor man kan velge farge eller størrelse på ett plagg e.l. så oppdateres prisen og enkelte ganger også produktbildet dynamisk ut i fra de valgene man gjør på selve produktsiden etter at denne er lastet inn i nettleseren.
I og med at Dag skriver “forløper” så ville jeg vel tro at det er slik som Nutz sier, at dette er valg man foretar før man kommer til en eventuell produktside, og da er det vel naturlig å bruke php til sette noen verdier, eventuelt i en cookie eller som en querystring hvorpå produktsiden henter rette prisen i et array eller noe slikt ut i fra de verdiene som er satt tidligere.
Så kommer det vel også an på nettbutikkløsningen, dersom kjøpet registreres med en produktkode e.l. i systemet og prisene ligger i en database, og prisene så hentes opp igjen senere ved utsjekking eller betaling osv. så holder det ikke bare å bytte noen tall i koden på produktsiden, da må man også få dette til å funke hele veien til kassen, og for unike brukere osv.
Det skal være to nedtrekksmenyer hvor det skal være to-tre valg i hver. Man velger kun ett av disse valgene i hver meny og prisen blir da satt utifra hva man har valgt. Prisen skal kunne endres dynamisk dersom man endrer valg, det samme gjør beskrivelsesteksten som står under disse valgene.
okay, først må du ha menyene, disse er bare vanlig html, og kan styles og posisjoneres med css osv. og lages med og
rød
blå
grønn
[/HTML]
En slik meny kan styres med alt mulig rart, og det er mulig å sette opp valgene i php, RoR, JS og cgi blant annet.
For å bruke et CGI script kan man gjøre noe slikt:
[HTML]
[/HTML]
Dersom du ønsker å endre noe dynamisk på siden ved å bruke javascript trenger du en funksjon som kan bindes til menyen og som for eksempel benytter jQuery.html() for å bytte ut tekst og priser når noe i menyen endres, eller med andre ord på OnChange hendelser i menyen.
Det blir litt vanskelig å skrive noe når man ikke vet hvordan dette skal se ut, men det enkleste er å ha en inline funksjon i .html dokumentet, selv om vi ikke liker inline javascript, og kjøre denne funksjonene direkte i menyen ved OnChange, noe slikt:
[HTML]
[/HTML]
Dette har massevis av problemer, og validerer sikkert ikke heller, det vil si ingen av eksemplene her virker ut av boksen, de er kun for å illustrere hvordan det kan gjøres.
Det beste ville nok være å bruke navnet på for å styre menyvalgene fra et eksternt script eller noe slikt, men igjen så må dette legges opp slik at det passer inn der det skal.
Grunnen til at jeg har nevnt RoR noen ganger er fordi Ruby har noen innebyggede funksjoner som kan brukes til å styre slikt som dette forholdsvis enkelt, men jeg kan ikke nok Ruby enda til at jeg kan sette opp noe som virker, jeg har bare fått med meg at det ligger noen funksjoner innebygget for overvåking av elementet, og enkle muligheter for styring av nettopp slike menyer.
Ser bra ut det Nextri, men det må også være en beskrivelse for produktene som også endres utifra hva man velger. Og det må være mulig å velge antall noe jeg glemte å nevne i første innlegg.
Har en skisse jeg kan legge ut senere, men sitter på mobilen så har det ikke her.
Men som nevnt betaler jeg gjerne noen kroner for å få dette satt opp. Burde være en smal sak for dere som er kjent med slikt…
Ja, det jeg la ut var bare som et eksempel. Er ikke noe problem å legge til flere dropdowns eller felter. Heller ikke å oppdatere flere områder på siden med forskjellig info og pris osv.
legg ut en skisse du med alt som skal til, og hva slags system det skal integreres i.
Jeg satt helt i min egen lille verden å skrev i vei jeg da, og så ikke svaret til Nextri, men der har du jo et fullt fungerende eksempel som viser hvor enkelt det er å binde en funksjon til en klasse, som i dette tilfellet er en nedtrekksmeny, og som Nextri skriver er det fort gjort å skifte ut hva som helst av koden i .php eller .html filen med jQuery, det er til og med lagt ved ett lite php regnestykke som ganger den ene menyen med den andre, så dette ordner seg sikkert.
Mesteparten av tiden det tar å fikse dette går sannsynligvis til å integrere det, og få pris og eventuell beskrivelse til å henge med videre i nettbutikkløsningen, alt ettersom hvilken nettbutikkløsning det er snakk om og hvor dette lagres, men i grunn ikke noe hokuspokus det heller.
I tillegg til dette skal det være et felt rett under disse menyene (til ventre for prisen) hvor det står en beskrivelse av produktet man har valgt. Det skal også være mulighet under dette feltet igjen å velge om man vil ha montering eller ikke, dette kan også være nedtrekk.
Så vidt jeg vet, skal dette videre til en egen nettbutikk som kunden har hos Mamut, men jeg venter på mail med mer info om dette. Isåfall må jo valgene som gjøres her, gjenspeiles i handlekurven i nettbutikken og da vil jeg tro man snakker en god del mer jobb med en gang.
Men som sagt, mer info kommer.
Om noen tar seg tid til å sette opp dette for meg, er jo det veldig bra, men jeg er altså ikke redd for å betale for dette.
Jada, alt ligger i html filen, bare klikk “vis kildekode” eller noe sånt, så ser du at alt er stylet med css.
Koden kan se litt avskrekkende ut med en gang ettersom jeg tok litt av med CSS3 effekter på den kjøpeknappen, som også er kun css, ikkenoe javascript som styrer fading osv. på den knappen, kun en helt vanlig html som er stylet med css.
Koden ble akkurat litt lang til at jeg fikk lov til å legge den ut her i går, men jeg prøver på nytt i dag ved å legge ut koden uten fargeeeffektene og effekter på kjøpeknappen.
Super Duper pakketilbud uten en eneste hengelås og vaffal ikke med pigger
Super Duper pakketilbud uten en eneste hengelås og med bøttevis med pigger
Super Duper pakketilbud med enorm hengelås og bøttevis med pigger
Til alle typer personbiler
Til kjempestore lastebiler
Pakken for alle bondetamper
Vi monterer greiene for deg
Montere driten gjør du sjøl
1995
,-
Montering 499,-
$(document).ready(function(){
function driverIkkeButikk() {alert("Vi driver ikke butikk her asså!");}
$(".velg").bind('change', function() {
var Pris = parseInt($("#losning").val());
var Type = $("#type").val();
var Antall = $("#antall").val();
var Montering = parseInt($("#montering").val());
var TotalPris = Pris * Type;
var TotalPrismm = TotalPris + Montering;
var Total = TotalPrismm * Antall;
$("#pris p").html(Total);
if (Pris == "1995") {$(".utenpigg").css("display","block");
$(".medpigg, .medalt").css("display","none");}
else if (Pris == "2295") {$(".medpigg").css("display","block");
$(".utenpigg, .medalt").css("display","none");}
else
{$(".medalt").css("display","block");
$(".utenpigg, .medpigg").css("display","none");}
if (Type == "1") {$(".person").css("display","block");
$(".last, .traktor").css("display","none");}
else if (Type == "1.2") {$(".last").css("display","block");
$(".person, .traktor").css("display","none");}
else
{$(".traktor").css("display","block");
$(".person, .last").css("display","none");}
});
$(".ganger, #montering").bind('click', function() {
if ($("#montering").is(":checked"))
{$("#montering").val(499);
$(".utenmont").css("display", "none");
$(".medmont").css("display", "block");}
else {$("#montering").val(0);
$(".utenmont").css("display", "block");
$(".medmont").css("display", "none");}
var Pris = $("#losning").val();
var Type = $("#type").val();
var Antall = $("#antall").val();
var Montering = parseInt($("#montering").val());
var TotalPris = Pris * Type;
var TotalPrismm = TotalPris + Montering;
var Total = TotalPrismm * Antall;
if (Antall < 1) {$("#antall").val(1);}
else {$("#pris p").html(Total);}
});
</script>
</div>
</body>
[/HTML]
jQuery brukes kun til å oppdatere prisen og velge hvilket innhold som skal være synlig.
Jeg droppet php biten, så her foregår utregningen også i javascript, og det er mulig det må endres slik at det blir mer som nextri sitt eksempel dersom priser skal hentes ut av en database e.l.