Just nu i M3-nätverket
Jump to content

Problem med formulär!


Arne Karlsson

Recommended Posts

Arne Karlsson

Hej!

Jag har problem med att skicka värden från ett formulär skapad i javascript till två funktioner.

Den ena funktionen ska ändra värdet antal och den andra ska ta bort en vara. Problemet är att värderna pid och antal inte kommer fram till funktionerna. Scriptet kommer här:

<script language="JavaScript">

var kundvagn = new Kaka(document, "kundvagn")

if(kundvagn.load())

{

pid = new Array;

produkt = new Array;

antal2 = new Array;

document.write("<h1>kundvagn</h1><br>")

document.write("<table><tr ><th>Produkt</th><th>Antal</th></tr>")

document.write("<form name='kundvagn'>");

for (i=0; i < Objects(); i++)

{

pid=kundvagn.pid.split (";");

produkt=kundvagn.produkt.split (";");

antal2=kundvagn.antal.split (";");

document.write("<tr><td>"+produkt);

document.write("<input type='hidden' name='pid' value=''>")

document.write("<input type='hidden' name='produkt' value=''>")

document.write("</td><td><input type='text' name='antal' value = '' size = '3'></td>")

document.write("<td><input type='button' value='Ändra antal' onclick = 'andra(pid, antal)'></td>")

document.write("<td><input type='button' value='Ta bort' onclick = 'tabort(pid)'></td>")

}

document.write("</tr></form>")

document.write("</table>")

var x =0;

for (i=0; i < Objects(); i++)

{

document.forms['kundvagn'].elements[x].value=pid;

document.forms['kundvagn'].elements[x+1].value=produkt;

document.forms['kundvagn'].elements[x+2].value=antal2;

x = x+5;

}

}

else

{

document.write("<b><h1>Det finns inga varor i kundvagnen!</h1></b>")

}

</script>

 

Mvh Arne

Link to comment
Share on other sites

Måste erkänna att jag kanske är lite lost här men...

Problemet är att värderna pid och antal inte kommer fram till funktionerna

Då kanske det inte är funktionen det är fel på, utan värdena pid och antal som inte blir tilldelade värden på rätt sätt?

for (i=0; i < Objects(); i++)

Vad är det för Objects du räknar igenom? Den funktionen, liksom Kaka() är inte definierad här, så om det är där felet ligger så kan jag inte hjälpa dig.

 

Link to comment
Share on other sites

Arne Karlsson

Hej!

Kaka är en funktion som läser och skriver till en Cookie och Objects är en funktion som tar reda på hur många poster det finns i Arrayen pid.

 

Här kommer resten av scripten:

 

function Kaka(document, name, hours, path, domain, secure) {

this.$document = document;

this.$name = name;

 

this.$expiration=hours?new Date(new Date().getTime() + hours*36000000):null;

this.$path=path?path:null;

this.$domain=domain?domain:null;

this.$secure=secure?secure:null;

}

 

Kaka.prototype.store = function() {

var cookieval="";

for(var prop in this) {

if (prop.charAt(0) == '$' || ((typeof this[prop]) == 'function'))

continue;

if(cookieval != "") cookieval+='&';

cookieval += prop + ':' + escape(this[prop]);

}

 

var cookie = this.$name + '=' + cookieval;

if(this.$expiration) cookie+=';expires='+this.$expiration.toGMTString();

if(this.$path) cookie +='; path='+this.$path;

if(this.$domain) cookie +='; domain='+this.$domain;

if(this.$secure) cookie +='; secure='+this.$secure;

 

this.$document.cookie=cookie;

}

 

Kaka.prototype.load = function() {

var allcookies = this.$document.cookie;

if(allcookies == "") return false;

 

var start = allcookies.indexOf(this.$name + '=');

if(start == -1) return false;

start += this.$name.length+1;

var end = allcookies.indexOf(';', start);

if (end == -1) end = allcookies.length;

var cookieval = allcookies.substring(start, end);

 

var a = cookieval.split('&');

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

a = a.split(':');

 

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

this[a[0]] = unescape(a[1]);

 

return true;

}

 

Kaka.prototype.remove = function() {

var cookie = this.$name+'=';

if(this.$path) cookie += '; path='+this.$path;

if(this.$domain) cookie += '; domain='+this.$domain;

cookie+='; expires=Fri, 02-Jan-1970 00:00:00 GMT';

 

this.$document.cookie=cookie;

}

 

 

// Funktion som tar reda på hur många objekt det finns i arrayen pid

function Objects() {

if(kundvagn.load()) {

var antal=1;

for (langd=1; langd < kundvagn.pid.length; langd++)

{

if (kundvagn.pid.charAt(langd) == ";")

antal ++;

}

return antal;

}

else

return 0;

}

 

Hoppas att du kan hjälpa mig.

Mvh Arne

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...