![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Chcę za pomocą funkcji $.ajax przesłąć wartość (value) zaznaczonych pól checkbox. Wartość jednego pola pobieram: Kod var jedna = $('input.check:checked').val(); a liczbę zaznaczonych checkboxow tak: Kod var ile = $('input.check:checked').length; Wartości są pojedyńczymi liczbami. Jak zrobić, aby te wartości zaznaczonych checkboxów były przesyłane do skryptu PHP np: jako liczby oddzielone przecinkami? Może jest jakiś prostszy sposób? Jeżeli robię coś takiego: Kod for(i = 0; i < ile; i++){ wszystkie[i] = jedna; } To otrzymuje odpowiednią ilośc wartości, ale są to tylko wartości pierwszego wybranego checkboxa:/ |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź to:
Kod var z_przecinkami;
$('input.check:checked').each( function(){ z_przecinkami += $(this).val() + ', '; }); alert(z_przecinkami); Ten post edytował sowiq 14.06.2009, 20:19:42 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie.
Pięknie działa. A jak można by to jeszcze zrobić, aby dziłało także jeśli user ma wyłączony javascript? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat A jak można by to jeszcze zrobić, aby dziłało także jeśli user ma wyłączony javascript? Nazwij checkboxy tymi samymi frazami "tablicując" (nazwa[]) i po submicie formularza używaj implode" title="Zobacz w manualu PHP" target="_manual. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak zrobiłem i pojawia się pewna niezgodność. Jeśli używam AJAXa w ten sposób:
Kod $('input.check:checked').each( function(){ wszystkie += $(this).val() + ', '; }); to do skryptu przesyłany jest string. Z drugiej strony jeśli wyłącze JS to skrypt otrzymuje tablicę. Pojawia się więc niezgodność. Jak to ujednolicić? Myślę, że najlepiej było by ten skrypcik jQuery trochę zmienić, aby przesyłał tablicę. Jak to zrobić? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mój poprzedni kod + 15 sek na Google:
Kod $('input.check:checked').each( function(){
// tu musisz sobie sam poradzić ruszając głową kolejny_element_tablicy = $(this).val(); }); // zapytanie ajax żywcem z http://docs.jquery.com/Ajax/jQuery.ajaxSetup#options $.ajaxSetup({ url: "./superadresik.php", global: false, type: "POST" }); $.ajax({ moja_tablica: wygenerowana_wczesniej_tablica }); |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jakbym wiedział co mam w pisać w miejscu w którym napisałeś żebym ruszył głową, to bym nie pisał poprzedniego posta;P
Urzywam czegoś takiego: Kod $('input[type=submit]').click(function(){ var ile = $('input.check:checked').length; var wszystkie = new Array; for (i = 0; i < ile; i++) { $('input.check:checked').each( function(){ wszystkie[i] = $(this).val(); }); } $.ajax({ type: 'post', url: '../skrypt.php', data: 'wszystkie=' + wszystkie, success: function(odpowiedz){ $('ul#odpowiedz').fadeIn(1000).html(odpowiedz); } });//end ajax return false; }); Niestety przesyłane są tylko wartości największe, lecz w odpowiedniej ilości... |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Urzywam czegoś takiego: Cytat Niestety przesyłane są tylko wartości największe, lecz w odpowiedniej ilości... Napisz najpierw po polsku oraz bez skrótów myślowych tak, aby każdy wiedział co masz na myśli... -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Napisz najpierw po polsku True.Zamień: Kod for (i = 0; i < ile; i++) { $('input.check:checked').each( function(){ wszystkie[i] = $(this).val(); }); } Na: Kod var i = 0; $('input.check:checked').each( function(){ wszystkie[i ++] = $(this).val(); }); each() to już pętla, więc for() nie jest potrzebny. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie działa,
Skrypt PHP otrzymuje string. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Kod wszystkie[i ++] Na pewno tu spacja potrzebna? ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie powinno jej tam być.
My się zastanawiamy ale przecież to troche bez sensu jest myślenie i myślenie. Wystarczy to w skrypcie: Kod if(is_array($wszystkie)){ $wszystkie = strip_tags(trim(implode(',',$wszystkie))); } i problemu nie ma;D Ten post edytował gcdreak 15.06.2009, 18:59:14 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 14:11 |