Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ XML, AJAX _ [PHP][AJAX][JS] Pobranie danych z checkboxow i przeslanie ich do pliku suggest.php

Napisany przez: Turqus 28.04.2017, 15:00:11

Witam mam problem otóż mam formularz:

  1. <section id="main-container">KWOTA KOŃCOWA</section>
  2.  
  3.  
  4. <http://december.com/html/4/element/label.html for="opcje">Opcje (Proszę zaznaczyć przynajmniej jedną z opcji):</http://december.com/html/4/element/label.html>
  5. <http://december.com/html/4/element/p.html>
  6. Z wyżywieniem <http://december.com/html/4/element/input.html type="checkbox" name="opcja[]" value="food" data-parsley-mincheck="1" class="checkIt" /><http://december.com/html/4/element/br.html>
  7. Z dojazdem <http://december.com/html/4/element/input.html type="checkbox" name="opcja[]" value="drive" class="checkIt" /><http://december.com/html/4/element/br.html>
  8. Z ubezpieczeniem <http://december.com/html/4/element/input.html type="checkbox" name="opcja[]" value="insurance" class="checkIt"/><http://december.com/html/4/element/br.html>
  9. </http://december.com/html/4/element/p.html>


I chce by po zaznaczeniu checkboxa zachodziło żądanie do pliku suggest.php tam dodawało do kwoty początkowej (na razie nie ma jej ustalonej $suma=0) i zwracało sumę na stronie formularza. Problem jest taki, że muszę przesyłać automatycznie wartości zaznaczonych 3 checkboxow inaczej mi chyba nie będzie sumowało to tak prawidłowo i stoję w miejscu nie wiem co i jak zrobić, przeglądając strony o AJAX wszędzie różne rozwiązania i nie mogę go nigdzie przerobić by zrozumieć i dlatego zielony w tym jestem, na chwilę obecną mam taki skrypt W JS:

  1. <http://december.com/html/4/element/script.html type="text/javascript">
  2. $('.checkIt').change(function() {
  3. // this <- kliknięty checkbox
  4.  
  5. if (this.checked === false) {
  6. return;// jeśli nie jest zaznaczony,
  7. // wyjdź z funkcji
  8. }
  9.  
  10. // utworzenie urla
  11. var value = this.value;
  12. var url = 'suggest.php?q=' + value;
  13.  
  14. var data = {
  15.  
  16. };
  17.  
  18. $.get(url, data, function(response) {
  19. // response <- string, który zwrócił server
  20.  
  21. console.log(data);
  22. $('#main-container').html(data);
  23. $( document ).ajaxStart(function() {
  24. $( "#main-container" ).show();
  25. });
  26. });
  27.  
  28. });
  29. </http://december.com/html/4/element/script.html>





Proszę o pomoc.

A i jeszcze dodam, że jak klikam checkbox to przesyła zmienną, http://localhost/tester/suggest.php?q=food , http://localhost/tester/suggest.php?q=insurance tylko nie wiem co dalej.

Napisany przez: gitbejbe 28.04.2017, 23:17:36

Po co ci do tego ajax+php ? Wnioskuje że jest to jakiś ala koszyk ? Przy Twojej zerowej wiedzy o programowaniu, wątpię że naprawdę potrzebujesz robić sumę po stronie serwera po zaznaczeniu checkboxa biggrin.gif, dlatego najzwyczajniej w świecie nadaj dla inputów wartości o które mają powiększać sumę, i javascriptem sumuj wartość początkową z wartością zaznaczonego inputa, po czym wyświetl wynik tam gdzie potrzebujesz. Po wypełnieniu formularza -> naciśnięciu submit, w phpie sprawdzisz formularz i finalizujesz temat.

ps. nie szukaj w internecie "gotowców" bo ich nie znajdziesz, postaraj się sam do tego dojść jak co działa, poczytaj o technologiach/funkcjach które stosujesz , debuguj ile się da a przekonasz się że problem tkwi tylko w lenistwie. Twój problem powinny rozwiązać 4 linijki kodu. Do roboty !

Napisany przez: Turqus 30.04.2017, 13:45:43

Wartości value mam zajęte, a te checkboxy muszą same pobrać z bazy wartość którą później trzeba dodać i wyświetlić

Napisany przez: gitbejbe 30.04.2017, 19:40:54

atrybut value można zastąpić dowolnie innym - to nie problem. Wartości dla checkboxów możesz ustalić za pomocą php przy generowaniu strony. Przez te kilka chwil które upłynie na wypełnianiu formularza przez użytkownika, raczej ceny się nie zmienią ? A jeśli takie masz założenie że jednak mogą się zmienić, to nawet pobierając ceny dopiero po kliknięciu w checkboxy, ceny mogą być i tak nie aktualne w momencie gdy użytkownik naciśnie submit.Zrób tak jak Ci napisałem: ustal dla inputów wartości w php, zrób najprostszą dynamiczną sumę beż żadnych ajaxów, a na koniec dla pewności że wszystko się zgadza możesz wyświetlić stronę podsumowania i tyle. Tutaj ajax naprawdę jest totalnie bez sensu

Napisany przez: Turqus 4.05.2017, 23:42:13

Takie pytanie a jak zrobic w przypadku:

<label for="opcje">Opcje (Proszę zaznaczyć przynajmniej jedną z opcji):</label>
<p>
Z wyżywieniem <input type="checkbox" name="opcja[]" value="food" data-parsley-mincheck="1" class="checkIt" /><br>
Z dojazdem <input type="checkbox" name="opcja[]" value="drive" class="checkIt" /><br>
Z ubezpieczeniem <input type="checkbox" name="opcja[]" value="insurance" class="checkIt"/><br>
</p>


Po klasie np zmieniajac na 1checkbox... checkit1 2 checkit2 3 checkit3

Zeby przesyłał parametry ajaxem w sposob:
"suggest.php?q="+insert,

jeśli dwa

"suggest.php?q="+insert+'b='insert2'

a jesli 3

"suggest.php?q="+insert+'b='insert2'+'c='insert3'

Albo jakos tak podobnie bym mógł przesłać 3 parametry w oddzielnych zmiennych

Jakby cos takiego wygladalo?





Napisany przez: wolguy 9.05.2017, 11:34:18

nie wiem, czy to ważne, ale konstruując adres url metodą GET, musisz rozdzielać parametry ampersandem

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)