Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]Przeliczanie po wybraniu opcji z selekta
Forum PHP.pl > Forum > Przedszkole
pawel06281990
Witam,

Proszę was o pomoc bo to jest dla mnie wyższa szkoła jazdy a potrzebuje tego więc tłumacze o co mi chodzi.

Mam 3 elementy w których będzie kwota ale każda kwota jest inna i chce zrobić aby po wybraniu Kwoty się sumowały np. mam element tkanina kosztuje 50 w następnym elemencie mam wzór kosztuje 180 oraz kolor tkaniny 40 zł i chce żeby się to sumowało + vat o oczywiście zapomogą ajax'sa.

Mam nadzieje ze dobrze wytłumaczyłem o co mi chodzi
trueblue
A po co za pomocą Ajaxa?
Obsługujesz kliknięcie każdego elementu, sumujesz ceny tylko z zaznaczonych i gotowe.
pawel06281990
Ajax do tego aby na dole gdzie wyświetlać ma mi ceny sumowane chce aby był taki kręcący się gif i bez przeładowywania strony.

To ja wiem ale jak zrobić to w praktyce. o to mi chodzi

bo mam taki formularz

  1. <div class="col-4">
  2. <label for="formGroupExampleInput">Example label</label>
  3. <input type="number" class="form-control" id="formGroupExampleInput" value="<?php echo $product['min'];?>" min="<?php echo $product['min'];?>" max="<?php echo $product['max'];?>" pattern="[0-9]" placeholder="" style='width:410px;'>
  4. </div>
  5. <?php
  6. if($product['pierwsza_pozycja'] =="1"){
  7. ?>
  8. <div class="col-4">
  9. <label class="mr-sm-2" for="inlineFormCustomSelect">Preference</label>
  10. <select class="form-control" id="inlineFormCustomSelect" style='width:410px;'>
  11. <option selected value="<?php echo $product['cena'];?><"><?php echo $product['opcja'];?></option>
  12. <option value="<?php echo $product['cena_1'];?>"><?php echo $product['opcja_1'];?></option>
  13. <option value="<?php echo $product['cena_2'];?>"><?php echo $product['opcja_2'];?></option>
  14. <option value="<?php echo $product['cena_3'];?>"><?php echo $product['opcja_3'];?></option>
  15. <option value="<?php echo $product['cena_4'];?>"><?php echo $product['opcja_4'];?></option>
  16. <option value="<?php echo $product['cena_5'];?>"><?php echo $product['opcja_5'];?></option>
  17. </select>
  18. </div>
  19. <?php
  20. }
  21. if($product['druga_pozycja']=="2"){
  22. ?>
  23. <div class="col-4">
  24. <label class="mr-sm-2" for="inlineFormCustomSelect">Preference</label>
  25. <select class="form-control" id="inlineFormCustomSelect" style='width:410px;'>
  26. <option selected value="<?php echo $product['cena_6'];?><"><?php echo $product['opcja_6'];?></option>
  27. <option value="<?php echo $product['cena_7'];?>"><?php echo $product['opcja_7'];?></option>
  28. <option value="<?php echo $product['cena_8'];?>"><?php echo $product['opcja_8'];?></option>
  29. <option value="<?php echo $product['cena_9'];?>"><?php echo $product['opcja_9'];?></option>
  30.  
  31. </select>
  32. </div>
  33. <?php
  34. }
  35. ?>


i mam taki skrypt to liczenia watu
  1. $netto2 =number_format($product['cena']+$settings['wysylaka'], 2, ".", "");
  2. $brutto2 = number_format($netto2*(1+$settings['vat']/100), 2, ",", "");


Ale nie wiem jak zrobić aby sumowało mi cenę aktywną z tych formularzy questionmark.gif

Dokładnie to chodzi mi o taki efekt http://sklep.sferapolska.pl/product/35x9x24_1
nospor
Cytat
Ajax do tego aby na dole gdzie wyświetlać ma mi ceny sumowane chce aby był taki kręcący się gif i bez przeładowywania strony.
Jak juz wspomniano wczesniej AJAX ci do tego niepotrzebny. Wszelkie wyliczenia mozesz zrobic od razu w js i bedzie o niebo szybsze. Ale jak tam wolisz.

Co do AJAX co podales w innym temacie:
to sie zdecyduj albo robisz submit forma, albo slesz AJAX. Nie mozesz robic dwoch rzeczy na raz
pawel06281990
Cytat(pawel06281990 @ 23.08.2018, 10:59:50 ) *
Dokładnie to chodzi mi o taki efekt http://sklep.sferapolska.pl/product/35x9x24_1


Tak jak podałem link chciałem mieć taki efekt żeby było.

I robię to i nie mogę tego zrobić
nospor
No a ja ci podalem odpowiedz. Zrobiles co ci napisalem?
pawel06281990
Cytat(nospor @ 24.08.2018, 16:55:56 ) *
No a ja ci podalem odpowiedz. Zrobiles co ci napisalem?


Tylko jak mam to zrobić nigdy nie robiłem w js questionmark.gif

Bo nie wiem czy się da zrobić po wybraniu danego element w select a on się zapisze do bazy, bez przeładowania się strony a on będzie oznaczony w checked='checked'.

Z czołem pisać ale coś mi nie wychodzi

  1. $result = dbquery("SELECT tac.kategoria, tac.tytul, tac.tytul, tac.images, tac.cena, tac.product_id, tac.min, tac.max, tac.promocja,
  2. tac.pierwsza_pozycja, tac.druga_pozycja, tac.cena,
  3. tac.opcja, tac.cena_1, tac.opcja_1, tac.cena_2,
  4. tac.opcja_2,tac.cena_3, tac.opcja_3, tac.cena_4,
  5. tac.opcja_4, tac.cena_5, tac.opcja_5, tac.cena_6,
  6. tac.opcja_6, tac.cena_7, tac.opcja_7, tac.cena_8,
  7. tac.opcja_8, tac.cena_9, tac.opcja_9 , tac.kwota_dodatku,
  8. ta.przyrostek_categori, wt.opis_towaru, wt.cena_towaru, wt.cena_1, wt.opis_1
  9. FROM ".$db_prefix."product tac
  10. INNER JOIN ".$db_prefix."category ta ON tac.kategoria=ta.przyrostek_categori
  11. LEFT JOIN ".$db_prefix."wybrany_towar wt ON wt.wybrany_towar_id=tac.product_id
  12. WHERE kategoria='".$_GET['kategoria']."' AND product_id='".$_GET['product_id']."'");
  13. $product = dbarray($result);
  14.  
  15. if(dbrows(dbquery("SELECT wybrany_towar_id FROM ".$db_prefix."wybrany_towar WHERE wybrany_towar_id='".$product['product_id']."' limit 1" ))){
  16. $aktywne_pole="checked='checked'";
  17. }else{
  18. $aktywne_pole="";
  19. }
  20.  
  21. if ($product['opis_towaru']){
  22. $opis_towaru=$product['opis_towaru'];
  23. $opis_towaru1=$product['opcja_1'];
  24. $opis_towaru2=$product['opcja_2'];
  25. $opis_towaru3=$product['opcja_3'];
  26. $opis_towaru4=$product['opcja_4'];
  27. $cene=$product['cena'];
  28. $opis_towaru5=$product['opis_1'];
  29. $opis_towaru6=$product['opcja_6'];
  30. $opis_towaru7=$product['opcja_7'];
  31. $opis_towaru8=$product['opcja_8'];
  32. $opis_towaru9=$product['opcja_9'];
  33. $opis_towaru1= $product['opis_1'];
  34. $cena=$product['cena_towaru'];
  35. $cena1=$product['cena_1'];
  36. $netto2 =number_format($cene+$cena1+$settings['wysylaka'], 2, ".", "");
  37. $brutto2 = number_format($netto2*(1+$settings['vat']/100), 2, ",", "");
  38. }else{
  39.  
  40. $opis_towaru=$product['opcja'];
  41. $opis_towaru1=$product['opcja_1'];
  42. $opis_towaru2=$product['opcja_2'];
  43. $opis_towaru3=$product['opcja_3'];
  44. $opis_towaru4=$product['opcja_4'];
  45. $cene=$product['cena'];
  46. $opis_towaru5=$product['opcja_5'];
  47. $opis_towaru6=$product['opcja_6'];
  48. $opis_towaru7=$product['opcja_7'];
  49. $opis_towaru8=$product['opcja_8'];
  50. $opis_towaru9=$product['opcja_9'];
  51.  
  52. $cene1=$product['cena_1'];
  53. $netto2 =number_format($cene+$cene+$_POST['cena']+$_POST['cena1']+$settings['wysylaka'], 2, ".", "");
  54. $brutto2 = number_format($netto2*(1+$settings['vat']/100), 2, ",", "");
  55. }


a tu kod html

  1. <form class="autoSubmit" method='post' action="">
  2. <div class="col-4">
  3. <label for="formGroupExampleInput">Example label</label>
  4. <input name="cena1" type="hidden" class="form-control" id="sumuj" value="<?php echo $product['kwota_dodatku'];?>" placeholder="" style='width:410px;'>
  5. <input name="cena1" type="number" class="form-control" id="formGroupExampleInput sumuj" value="<?php echo $product['min'];?>" min="<?php echo $product['min'];?>" max="<?php echo $product['max'];?>" pattern="[0-9]" placeholder="" style='width:410px;'>
  6. </div>
  7.  
  8. <div class="col-4">
  9. <label class="mr-sm-2" for="inlineFormCustomSelect">Preference</label>
  10. <select id="inlineFormCustomSelect " name="cena2" class="form-control" style='width:410px;'>
  11. <option value"<?php echo $cena;?>" <?php echo $aktywne_pole;?>><?php echo $opis_towaru;?></option>
  12. <option value"<?php echo $cena;?>" <?php echo $aktywne_pole;?>><?php echo $opis_towaru1;?></option>
  13. <?php echo "<option value'".$cena."' ".$aktywne_pole." >".$opis_towaru2."</option>";?>
  14. <option value"<?php echo $cena;?>" <?php echo $aktywne_pole;?>><?php echo $opis_towaru3;?></option>
  15. <option value"<?php echo $cena;?>" <?php echo $aktywne_pole;?>><?php echo $opis_towaru4;?></option>
  16. </select>
  17. </div>
  18.  
  19.  
  20. <div class="col-4">
  21. <label class="mr-sm-2" for="inlineFormCustomSelect">Preference</label>
  22. <select id="kolejna_cena" name="cena" class="form-control" style='width:410px;'>
  23. <option value"<?php echo $cena1;?>" <?php echo $aktywne_pole;?>><?php echo $opis_towaru5;?></option>
  24. <option value"<?php echo $cena;?>"><?php echo $opis_towaru6;?></option>
  25. <?php echo "<option value'".$cena1."'>".$opis_towaru7."</option>";?>
  26. <option value"<?php echo $cena1;?>"><?php echo $opis_towaru8;?></option>
  27. <option value"<?php echo $cena1;?>"><?php echo $opis_towaru9;?></option>
  28.  
  29. </select>
  30. </div>
  31.  
  32.  
  33.  
  34. <div class="col-4">
  35. <label for="exampleFormControlTextarea2">Small textarea</label>
  36. <textarea class="form-control rounded-0" id="exampleFormControlTextarea2" rows="3" style='width:410px;'></textarea>
  37. </div>
  38.  
  39. </form>
  40. <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
  41. <script type="text/javascript">
  42. $('.autoSubmit').change(function () {
  43. const el = $(this);
  44. let form;
  45.  
  46. if (el.is('form')) { form = el; }
  47. else { form = el.closest('form'); }
  48.  
  49.  
  50. $("#maska").show();
  51. $("#maska").prepend(' <img style="margin-bottom: -17px;" src="../images/ajax-loading.gif" />');
  52. form.submit();
  53. });
  54.  
  55.  
  56. </script>


Gdzie robię błąd questionmark.gif
nospor
Cytat
Tylko jak mam to zrobić nigdy nie robiłem w js
Akurat mowilem o uwadze, ktora zrobilem na temat twojego AJAX a w ktorym to najpierw robiles submit forma a potem AJAXa... Mowie jeszcze raz: nie mozesz robic dwoch rzeczy na raz. Jak robisz ajax to submit forma masz wywalic
pawel06281990
ok rozumiem ajax nie współpracuje z js.

To teraz podaj mi przykład jak mam zrobić abym nie miał guzika i żeby się submit wywoływał po wybraniu z selecta.questionmark.gif
nospor
Cytat
ok rozumiem ajax nie współpracuje z js.
No dobra, a jak do tego doszedles? Bo ja nic takiego nie napisalem przeciez. Zeby nie bylo: twoje zrozumienie jest bledne. Ajax dosc mocno wspolpracuje z js

Cytat
i żeby się submit wywoływał po wybraniu z selecta.
A po co ma ci sie submit wywolywac po wybraniu selecta?
pawel06281990
Cytat(pawel06281990 @ 23.08.2018, 10:59:50 ) *
Dokładnie to chodzi mi o taki efekt http://sklep.sferapolska.pl/product/35x9x24_1


Widziałeś te stronę a chce osiągnąć ten sam efekt bo mi jest to potrzebne sprawdź i wybierz z pola select jakąś opcje i zobacz o co mi chodzi bo wiudzię to mnie nie rozumiesz.

Pier karzesz wyrzucić teraz mówisz ze współpracuje to ja już zgłupiałem i nie wiem co mam robić wacko.gif
nospor
Ja na te stronie bylem i doskonale wiem co chcesz osiagnac.

Cytat
Pier karzesz wyrzucić
No widzisz... tak to jest jak nie czytasz co ci pisza. Ja ci nie kazalem wyrzucac ajax tylko submit forma. No ale po co czytac ze zrozumieniem, lepiej siedziec i gderac... na pewno ktos sie zlituje nad taka maruda i poda gotowca. Milego weekendu smile.gif
pawel06281990
Ja skrypt usunąłem cały i się nic nie dowiedziałem co gdzie i jak to zrobić.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.