20. februar 2010 - 10:48Der er
30 kommentarer og 1 løsning
select fra dropdown menu
Jeg har grande problemer med at få værdier videreført fra min dropdownmenu. Min menu side1: echo " Antal: <select name='styk[]'>"; $tider = array("","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"); foreach($tider as $antal) { echo "<option value='$rows[navn]'>"; echo $antal; echo "</option>"; } echo"</select>"; På side2 : if (isset($_POST['styk'])) { $styk = ($_POST["styk"]); echo "<BR><BR><B>Desuden følgende ekstra:</B><br>"; for($i=0;$i<count($styk);$i++) echo $styk[$i];
Men den skriver istedet samtlige values altså $rows[navn] og ikke de selectede $antal. Målet skulle være selectet $antal og tilhørende $rows[navn].
Jeg sætter stor pris på din hjælp. Jeg er ikke i en WHILE -og jeg har konsekvent kun 2 " og resten' i mine sætninger. Og jeg sidder og fumler med at få scriptet vist. Så ha lidt tålmodighed. else { echo $rows["navn"]; echo " kr."; echo $rows["kr"];
Har fået det meste til at virke ;) så du må gerne lægge et svar. tillægsspg: ved du hvordan får jeg de rigtige decimaler på echo ($value * $rows["kr"]); mit felt i db er decimal altså 15.00 kr
Det er sådan at $nypris = number_format($value, 2) * number_format($rows["kr"], 2);
giver rigtig $value (4) * rigtig rows["kr"] (30.00) men resultatet bliver hele tiden 12 og ikke 120 alle beregninger kører som dette, altså uden det afgørende 0.
m.h.t. det store problem: jeg har tænkt måske at lave en select dropdown og så få name og option value ind nogenlunde som du har vist tidligere. og så bruge $_POST til at få det ind i databasen. eller på en eller anden måde oprette en $SESSION der rummer alle disse data else {
Skal desværre på arbejde. Men tak for script. Jeg arbejder med det senere. Men da visningen af varenavn + antal i forvejen er del af formular der sender til sidste opdatering af db, og da jeg i forvejen kun operere med formularer der ikke kræver menneske-indtasning (undtaget mailadresse) synes jeg det passer meget godt at lave det til select option.
Med hensyn til gangestykket er det utroligt at det hele tiden bliver uden nul/tierne. Alle tallene er rigtige i db. antal(4), kr(30.00) og resultatet stadig 12!
Så står jeg der altså igen hvor jeg v.h.a. dit forslag skal have gjort foreach($_POST['styk'] as $key => $value) til en elegant session som jeg kan overføre til db på næste side.
Støn... først er der noget uldent ved sammentællingen. Resultaterne ser sådan ud: Ekstra kurv, antal: .11., à 20.00, samlet pris = 2.2 Hjernehat, antal: .9., à 20.00, samlet pris = 18 Luksus kurv, antal: .4., à 30.00, samlet pris = 12 Ialt 1.41 varer til en samlet pris af 32.2
dbtabel feltet kr = decimal(7,2) og det står som før nævnt helt rigtigt.(30.00)i db. Jeg har lavet ny dbtabel o.m.a. desuden får jeg ikke (navn + antal) ind i db, men Array. Jeg bruger altså osse $varer = $_SESSION['varer']; og sætter så $varer ind. Orker ikke at bruge mere tid nu og går i seng.
Nu har jeg på en eller anden måde fået de rigtige decimaler på sammenregningen. Men får desværre stadig array istedet for (navn, antal) når jeg har lavet min session varer. ($_SESSION['pris'] er sat på foregående side) if(isset($_POST['styk'])) { $_SESSION['varer'] = array();
Suk. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Ekstra kurv',4),('Hjernehat',4),('Muddermaske',4)','188','and@mail.dk','445')' at line 1 og jeg har brugt: $addsql = array(); foreach($_SESSION['varer'] as $navn => $antal) { $addsql[] = "('".$navn."',".$antal.")"; } $varer .= implode(',',$addsql);
Kræver det noget særligt at sætte flere ting ind i eet felt i db. Jeg kan få arrayet samlet til $varer men får fejl når jeg forsøger at putte det i db. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Lille kurv',10),('stor kurv',10),('',)','223','jens@mail.dk','2700')' at line 1
jeg har brugt foreach ($_SESSION['varer'] as $navn => $antal) {
$addsql[] = "('".$navn."',".$antal.")";
} $varer = (implode(',',$addsql)); echo $varer;
$SQL = "INSERT INTO bestil(id, dag, tid, hvad, antal, varer, ordrenr, kundemail, kr) VALUES ('','$dag','$tid','$hvad','$antal','$varer','$ordrenr','$mail','$kr')"; $mq = mysql_query($SQL)or die(mysql_error()); når jeg udskriver $varer ser det således ud: ('Lille kurv',10),('stor kurv',10),('',) den sidste parantes ved jeg ikke hvor kommer fra.
Hej du Det ex. jeg lavede kode til, forudsatte at bestemte felter i tabel fik nye værdier i hver sit row ( varenavn, antal )
Når der så kommer en ) ind i query, så fejler det jo.
INSERT INTO tabel (felt_et, felt_to) VALUES ('værdi_et','værdi_to')
Du får jo noget a'la' INSERT INTO tabel (felt_et, felt_to) VALUES ('værdi_et','værdi_to'),('værdi_et','værdi_to') som værdi for ET felt
Og det er lidt kringlet at hjælpe dig, fordi jeg ville bruge en anden db opbygning. Jeg er ikke særlig "pædagogisk" når det for mig er noget forkert som laves, desværre ! ( Spørg bare min søn!!! )
Og du skal have mange tak for hjælpen indtil nu. Jeg behøver ikke yderligere pædagogik. Jeg har som du har foreslået lagt værdierne i en lille tabel for sig og så oprettet et felt med 'ordrenr' så jeg kan trække de rigtige vare/antal ud for ordren. Hvis så ordren ikke bliver bekræftiget må jeg jo kunne slette de ordrenr/varer/antal der ikke blev til noget igen pr. automatik(for at de ikke fylder op). Og så forsøger jeg at finde ud af at sætte en header el. lign. der kan forhindre siden i at blive opdateret og istedet pege på en anden side.
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.