17. oktober 2008 - 15:08Der er
6 kommentarer og 1 løsning
Realtime udregning af pris ajax php javascript
Hej... jeg har et problem med at få en realtime udregning af "pris" ganget med "antal", som så bliver skrevet ud i feltet "total" her er koden. lige nu blever der ikke lavet en udregning, og ved indtasting i alle "antal" felter bliver resultatet kun udskevet i det første "total" felt.. håber i kan hjælp mig har siddet med dette problem i over 3 dag.
function showUser(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML="" return } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="getprodukt.php" url=url+"?q="+str url=url+"&sid="+Math.random() xmlHttp.onreadystatechange=stateChanged xmlHttp.open("GET",url,true) xmlHttp.send(null) }
function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { document.getElementById("txtHint").innerHTML=xmlHttp.responseText } }
function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
1. ID txtHint hedder samme på alle varelinier på skærmen: Derfor rammer svaret ikke den rigtige linie.
2. Du sender indtastningsfeltet (som ser ud til at være antal) med som parameter til ShowUser. Men hvordan kommer varens id med til getprodukt.php så sql'en finder den rigtige vare? Og hvordan skal stateChanged kunne finde den rigtige linie, hvis getprodukt.php ikke sender id med tilbage?
Jeg vil anbefale at lade disse kalkulationer foregå i javascript, når du alligevel har antal og pris per linie i klienten. Jeg vender tilbage lidt senere med et eksempel.
var total = 0; for ( i=0; i < quantity.length; i++ ) { document.getElementById("span" + i).innerHTML = quantity[i] * price [i]; total += quantity[i] * price [i]; } document.getElementById("totalid").innerHTML = total; } </script> </head> <body onload="showForm(); CalcTotal()"> <h3>Item lines with javascript total calculator</h3> <div id="formdiv" ></div> total: <span id="totalid" ></span>$ </body> </html>
Hvis du lader dit php danne de 3 Arrays (ud fra dine varelinier i sql'en) kan du bruge eksemplet direkte. Dog skal det lige formatteres i en <table> som du allerede har i dit eget eksempel.
Hej tak for henvendelserne, jeg har ikke lige haft/har tid til at gennem gå jeres løsnings muligheder før i morgen, men ville bare gøre opmærksom på at jeg ikke har glemt min post :) takker mange gange for jeres svar :)
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.