Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Przesłanie tablicy do js a potem znowu do phpa
Wykrywacz
post 9.03.2010, 14:12:32
Post #1





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Jak przekazać do JS wartości z checkboxów, a potem z js getem do php'a.

BO z $_GET['v_check'] dostaje takie coś [object HTMLCollection], a nie umiem znaleźć jak się do tego dobrać

  1. function akcje()
  2. {
  3. xmlhttp=GetXmlHttpObject();
  4. if (xmlhttp==null)
  5. {
  6. alert ("Browser does not support HTTP Request");
  7. return;
  8. }
  9. var url="./control.php";
  10. var v_check = document.getElementsByName("box");
  11.  
  12.  
  13. v_akcja = document.forms['kontrol'].akcja.value;
  14.  
  15. url=url+"?akcja="+v_akcja+"&check="+v_check;
  16. xmlhttp.onreadystatechange=stateChangedcheckbox;
  17. xmlhttp.open("GET",url,true);
  18. xmlhttp.send(null);
  19. }



  1. while ($sd = mysql_fetch_array($seldata)) {<input type="checkbox" name="box['.$sd['id_paczki'].']" value="'.$sd['id_paczki'].'">
  2. }
  3. <select id="akcja" name="akcja"><option value="0">Podpisz</option><option value="1">Odrzuć</option></select><input type="button" value="Akcja" onclick="akcje()">
Go to the top of the page
+Quote Post
nospor
post 9.03.2010, 22:30:56
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
BO z $_GET['v_check'] dostaje takie coś [object HTMLCollection], a nie umiem znaleźć jak się do tego dobrać
smile.gif
Dostajesz tekst '[object HTMLCollection]' a nie obiekt - tak to jest jak sie do stringa wklada obiekt smile.gif

Musisz w js w petli przelecic po wszystkich checkboxach i pokolei wkladac ich wartosci


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Wykrywacz
post 12.03.2010, 11:51:34
Post #3





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Czemu on mi się czepia w tej pętli?
  1. if(el[i].type=="checkbox" and el[i].checked==true)

Bo nie czaje o co mu chodzi?
(przy and pokazuje mi że chce mieć nawias, a przy el chce średników?questionmark.gif?


  1. function akcje()
  2. {
  3. xmlhttp=GetXmlHttpObject();
  4. if (xmlhttp==null)
  5. {
  6. alert ("Browser does not support HTTP Request");
  7. return;
  8. }
  9. var url="./control.php";
  10. el =document.getElementsByTagName("input");
  11. for(i=0;i<el.count();i++)
  12. {
  13. if(el[i].type=="checkbox" and el[i].checked==true)
  14. {
  15. v_check = el[i].value;
  16. v_akcja = document.forms['kontrol'].akcja.value;
  17. url=url+"?akcja="+v_akcja+"&check="+v_check;
  18. xmlhttp.open("GET",url,true);
  19. xmlhttp.send(null);
  20. }}
  21. xmlhttp.onreadystatechange=stateChangedcheckbox;
  22. }
Go to the top of the page
+Quote Post
nospor
post 12.03.2010, 12:15:44
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




w js nie ma AND. W js jest &&


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Wykrywacz
post 12.03.2010, 12:21:43
Post #5





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dzięki nospor
Go to the top of the page
+Quote Post
nospor
post 12.03.2010, 12:25:35
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie zrozumiales mojej idei, albo zrozumiales ale zrobiles po swojemu smile.gif
Mowiac ze masz w petli leciec po chekboxach mialem na mysli ze masz leciec, utworzyc jeden url ktory zawiera tablice checkboxow a nastepnie tak utworzony url dopiero wyslac ajaxem. A widze ze ty w petli dla kazdego checkboxa lecisz ajaxem. srednio optymalne.

Tworzenie tablicy w url polega na dodaniu []:
?zm[]=1&zm[]=4&zm[]=....
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Wykrywacz
post 12.03.2010, 13:17:53
Post #7





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Nie zrozumiałem.

Zrobiłem tak:

  1. while (getElementsByname['box'].checked == true){
  2. url = url+"&box[]="+getElementsByname['box'].value;
  3. }


Czy o ten typ wrzucenia ci chodzi? czy nadal źle kminie?

Ten post edytował Wykrywacz 12.03.2010, 13:38:29
Go to the top of the page
+Quote Post
nospor
post 12.03.2010, 13:38:31
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




o to mi chodzilo


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Wykrywacz
post 12.03.2010, 14:05:07
Post #9





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Tak poprawiając już składnię:

W czym robię błąd? Bo nie chce mi żadnych wartości przesyłać? A wydaje mi się że wszystko jest okej

  1. while (document.getElementsByName("box").checked == true){
  2. url = url+"&box[]="+document.getElementsByName("box").value;
  3. }


Ten post edytował Wykrywacz 12.03.2010, 14:10:26
Go to the top of the page
+Quote Post
nospor
post 12.03.2010, 14:17:53
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Patrzyles wogole czy url ci sie poprawnie zbudowal?
2) Po stronie serwera patrzyles czy dostajesz to co myslisz?
3) Jak ty te wartosci wogole odbierasz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Wykrywacz
post 12.03.2010, 14:57:57
Post #11





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. var v_akcja;
  2. function akcje()
  3. {
  4. xmlhttp=GetXmlHttpObject();
  5. if (xmlhttp==null)
  6. {
  7. alert ("Browser does not support HTTP Request");
  8. return;
  9. }
  10. var url="./control.php";
  11. v_akcja = document.forms['kontrol'].akcja.value;
  12. url=url+"?akcja="+v_akcja;
  13.  
  14. while (document.getElementsByName("box").checked == true){
  15. url = url+"&box[]="+document.getElementsByName("box").value;
  16. }
  17. xmlhttp.onreadystatechange=stateChangedcheckbox;
  18. xmlhttp.open("GET",url,true);
  19. xmlhttp.send(null);
  20.  
  21. }
[JAVASCRIPT] pobierz, plaintext



  1. while ($sd = mysql_fetch_array($select_dane)){
  2. //
  3. //
  4. //
  5. <input type="checkbox" name="box" value="'.$sd['id_paczki'].'">
  6. }<select id="akcja" name="akcja"><option value="0">Podpisz</option><option value="1">Odrzuć</option></select><input type="submit" value="Akcja" onclick="akcje()">


control.php
  1. if (isset($_GET['akcja'])){
  2. main::nanies_zmiany($_GET['akcja'].$_GET['box']);
  3. }


Samego $GET['akcja'] przesyła.

Ten post edytował Wykrywacz 12.03.2010, 15:02:53
Go to the top of the page
+Quote Post
nospor
post 12.03.2010, 20:20:08
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Chyba wyrazilem się niejasno. Pozwól, że powtórzę:
1) Patrzyles wogole czy url ci sie poprawnie zbudowal?
2) Po stronie serwera patrzyles czy dostajesz to co myslisz?
3) Jak ty te wartosci wogole odbierasz?

Ustosunkuj się proszę do moich 3 punktów. W miejsce "PATRZYLES" masz mi udzielić odpowiedzi co zawiera dany element którego "PATRZYLES" dotyczy.

edit:
$_GET['akcja'].$_GET['box']
wykrywacz, czy ciebie trzeba jeszcze uczyc takich podstaw?
zrob sobie print_r($_GET) i zobacz co tam jest.
ale najpierw zrob:
Kod
while (document.getElementsByName("box").checked == true){
url = url+"&box[]="+document.getElementsByName("box").value;
}
alert(url);

i sprawdź tak jak prosilem, czy ten url zawiera to co ma zawierac.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Wykrywacz
post 13.03.2010, 13:59:17
Post #13





Grupa: Zarejestrowani
Postów: 726
Pomógł: 20
Dołączył: 8.12.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Dzięki za nakierowanie już działa wszystko poprawnie.

Aczkolwiek while nie chciał mi tego przelecieć więc przerobiłem to na for.
[JAVASCRIPT] pobierz, plaintext
  1. var box = document.getElementsByName("box");
  2. for (var i=0;i<box.length;i++){
  3. if (box[i].checked == true){
  4. url = url+"&box[]="+box[i].value;
  5. }}
[JAVASCRIPT] pobierz, plaintext

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 03:51