Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> PHP Array - przesłana przez kliknięcie w DIV do jQuery Ajax
scorpion10
post 19.03.2023, 17:51:14
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


Posiadam DIV z id="jsn"

  1. <div id="jsn" style="border:solid 1px red;height:30px;width:99%;overflow:hidden;margin-left:2px;"><?php echo json_encode($dane); ?></div>


po kliknięciu w którego chcę przesłać do JQuery zawartość tablicy json_encode($dane) jako json i tam najlepiej jeśli to możliwe odebrać go funkcja serializeArray()

wszystko było by pewno ok ale niestety dane do jQuery nie docierają. Brak jest błędów w console.log, status HTTP 200 ale dane sie nie pojawiają.
kod jquery

  1.  
  2. $(document).ready(function(){
  3. $("#jsn").click (function() {
  4.  
  5. var params = $("#jsn").serializeArray();
  6. //console.log(params);
  7.  
  8. $.post('modules/OprogramowanieEdit.php',params, function(res){
  9. console.log(res);
  10. },'json');
  11.  
  12.  
  13. });
  14. });
  15.  



Jak to, poprawnie zrobić jak przesłać tą tablice $dane z PHP nie przez formularz i przekazać do serializeArray() w jQuery lub jeśli nie da sie przez
serializeArray, to jak inaczej, najlepiej obrobić te dane z tablicy w JQ a potem przesłac poprzez Ajax ponowni do PHP.

Ten post edytował scorpion10 19.03.2023, 19:07:35
Go to the top of the page
+Quote Post
trueblue
post 20.03.2023, 07:00:54
Post #2





Grupa: Zarejestrowani
Postów: 6 762
Pomógł: 1822
Dołączył: 11.03.2014

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


Dane z jsn możesz pobrać poprzez: http://api.jquery.com/text/


--------------------
Go to the top of the page
+Quote Post
nospor
post 20.03.2023, 11:57:53
Post #3





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




Problem nie ma zadnego zwiazku z php. Przenosze

Swoja droga po co w ogole zapisujesz to do diva anie bezposrednio do zmiennej?

Kod
var jsn = <?php echo json_encode($dane); ?>;


A potem w ajax
Kod
    $.post('modules/OprogramowanieEdit.php',jsn, function(res){
            console.log(res);
    },'json');


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

"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
scorpion10
post 20.03.2023, 17:03:44
Post #4





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


div który tu jest, służy jako button, po jego kliknięciu ma uruchomić się obsługa w JQ.
Zapewne można to inaczej jeszcze zrobić, ale wybrałem taki sposób i nadal rozbijam się na
przesłaniu tej tablicy jsonem do JQ.
Go to the top of the page
+Quote Post
nospor
post 20.03.2023, 17:04:35
Post #5





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




No dobra, trueblue ci podal jak pobrac zawartosc diva. zmieniles, sprawdziles?


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

"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
scorpion10
post 20.03.2023, 17:37:59
Post #6





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


Zmieniłem, i sprawdzam ale coś ze składnią mi nie wychodzi. Próbuje pobrać funkcją text() ten fragment php
z tablicą ale chyba daleki jestem od prawdy :-)


  1.  
  2. $("#jsn").on("click",function() {
  3.  
  4. var jsn = ("div#jsn").text("<?php echo json_encode($dane); ?>");
  5.  
  6. $.post('modules/OprogramowanieEdit.php',jsn, function(res){
  7.  
  8. console.log(res);
  9.  
  10. },'json');
  11.  
  12. });
  13.  
  14.  


w przeglądarce dostaje .text is not a function
Go to the top of the page
+Quote Post
nospor
post 20.03.2023, 17:41:05
Post #7





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




Ty chyba losowo cos zmieniasz bez zadnego namyslu.
Jedyne co na chwile obecna miales zmienic to na to:

var params = $("#jsn").text();
console.log(params);


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

"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
scorpion10
post 20.03.2023, 17:50:35
Post #8





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


teraz w konsoli dostaje samo: [] czyli juz chyba ok bo to wyglada na pusta tablice...
Dzieki nospor, próbuje dalej dopracować sa. w JQ i JS nie jestem na bieżąco nieststey :-(

Ten post edytował scorpion10 20.03.2023, 17:53:48
Go to the top of the page
+Quote Post
nospor
post 20.03.2023, 17:54:25
Post #9





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




A to?
var params = $("#jsn").html();
console.log(params);

I pokaz kod po zmianach ktore zrobiles bo juz nie wierze ze wstawiasz to co trzeba wink.gif


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

"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
scorpion10
post 20.03.2023, 18:10:12
Post #10





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


OK, tak w przypadku html() jak i text() są już dane w konsoli w formie json. Czy teraz przekazując tą zmienną params
do Ajax powinienem bez problemów przesłać całą tablice ponownie do php ? A właściwie jak można teraz mając
te dane z tablicy w params, przypisać do wybranej zmiennej jakąkolwiek wartość index z tej tablicy ?
Niestety nie robiłem nigdy nic z tablicami w JQ i Ajax więc to dal mnie nowy teren.


  1. $("#jsn").click (function() {
  2.  
  3. var params = $("#jsn").html();
  4.  
  5. console.log(params);
  6.  
  7. $.post('modules/OprogramowanieEdit.php',params, function(res){
  8.  
  9. console.log(res);
  10.  
  11. },'json');
  12.  
  13. });


Ten post edytował scorpion10 20.03.2023, 18:11:42
Go to the top of the page
+Quote Post
nospor
post 20.03.2023, 18:39:05
Post #11





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




W divie masz tekst json, a do ajax masz przeslac obiekt json czyli


var params = JSON.parse($("#jsn").html());


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

"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
scorpion10
post 20.03.2023, 18:44:18
Post #12





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


Nie wiem dlaczego,ale przy próbie parsowania Json, dostaje błąd w konsoli

Uncaught SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data


coś ze skladnią syntax

Ten post edytował scorpion10 20.03.2023, 18:44:41
Go to the top of the page
+Quote Post
nospor
post 20.03.2023, 18:51:46
Post #13





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




pokaz co dokladnie zwraca

var params = $("#jsn").html();

console.log(params);



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

"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
scorpion10
post 20.03.2023, 23:02:13
Post #14





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


Takie dane zwraca bez parsowania jako json

[{"dns":"W-125-0027","model":"C440","producent":"LENOVO","ncrf":"CF\/PST\/487\/0000085319","nk":"IK\/PST\/XV\/31279","ID_sprzet":"5","kat":"Komputer AiO","pokoj":"18","nazwisko":"xxxx","imie":"xxx","pok_uzyt":"18"}]




EDIT:



Wielkie Dzięki @nospor, wiem już jak to z tym json-em w JQ, Ajax działa, dzięki twojej pomocy. To już kolejny raz, kiedy mogłem na Ciebie liczyć SZACUNEK ! za wiedzę i chęć pomocy innym

Ten post edytował scorpion10 20.03.2023, 23:03:54
Go to the top of the page
+Quote Post
nospor
post 21.03.2023, 09:20:54
Post #15





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




Cool smile.gif
Mozesz pokazac jak wyglada finalny kod?


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

"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
scorpion10
post 21.03.2023, 10:33:50
Post #16





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


Dalsze problemy sad.gif .
Dynamicznie generowane div-y dostają swój ID, kolejno numerowany czyli ID='json0' pozniej ID='json1' itd.
w jquery po kliknięciu w danego DIV-a odczytuje poprawnie, po reakcji na click .nazwa_klasy jego id, ale
odczytane ID za nic nie mogę, przekazać poprawnie do funkcji parsowania JSON.parse(), dostaję w konsoli przeglądarki Syntax Error
Czy w argumencie t ej funkcji, niemożna używać zmiennej ? Jeżeli nie to jak inaczej rozwiazać taki problem by parsowane były
tablice z klikniętego div ?

  1. $(".jjj").click(function () {
  2.  
  3. var div = $(this)[0]['id'];
  4.  
  5. var params = JSON.parse($("'#"+div+"'").html());
  6.  
  7. console.log(id);
  8.  
  9. var tab = $.ajax({
  10. type: 'POST',
  11. url: 'modules/OprogramowaniePlus.php',
  12. data: {
  13. tablica:params
  14. }
  15.  
  16. });
  17.  
  18. tab.done(function (dane) {
  19. $('#json').html(dane);
  20. console.log("SUCESS !!!");
  21.  
  22. });
  23.  
  24. tab.fail(function () {
  25. console.log('BŁĄD !!!!');
  26. });
  27.  
  28. tab.always(function () {
  29. console.log('ZAMYKAM POŁACZENIE');
  30. });
  31.  
  32. });
Go to the top of the page
+Quote Post
nospor
post 21.03.2023, 10:44:31
Post #17





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




Jak ty sobie lubisz komplikowac zycie.

Skoro klikasz w div, to przeciez juz masz ten div i nie musisz go szukac po id....


var div = $(this);
var params = JSON.parse(div.html());


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

"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
scorpion10
post 21.03.2023, 11:24:54
Post #18





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


Coś ze skladnią nie tak, dostaje w konsoli przeglądarki Syntax Error

Uncaught SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 485 of the JSON data


  1. $(".jjj").click(function () {
  2. var div = $(this);
  3. var params = JSON.parse(div.html());
  4.  
  5. console.log(div);
  6.  
  7. var tab = $.ajax({
  8. type: 'POST',
  9. url: 'modules/OprogramowaniePlus.php',
  10. data: {
  11. tablica:params
  12. }
  13.  
  14. });
  15.  
  16. tab.done(function (dane) {
  17. $('#json').html(dane);
  18. console.log("SUCESS !!!");
  19.  
  20. });
  21.  
  22. tab.fail(function () {
  23. console.log('BŁĄD !!!!');
  24. });
  25.  
  26. tab.always(function () {
  27. console.log('ZAMYKAM POŁACZENIE');
  28. });
  29.  
  30. });
Go to the top of the page
+Quote Post
nospor
post 21.03.2023, 11:25:31
Post #19





Grupa: Moderatorzy
Postów: 36 467
Pomógł: 6299
Dołączył: 27.12.2004




No to zobacz co zawiera
div.html()


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

"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
scorpion10
post 21.03.2023, 11:46:22
Post #20





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


ehh, przykleił się do diva <br> na końcu i zabużył json-a sad.gif

Ale już ok. Nie wiem kiedy przyzwoicie sie zaprzyjaźnię z JQ ale trochę
to chyba potrwa. nie załapalem że (This) w taki sposób moze identyfikować DIV-a
ja próbowałem wydostać z obiektu jaki tworzy identyfikator danego div, co się udało, ale
JSON.parse() takij kombinowanej zmiennej nie przyjmował :-)

--
EDIT

Czy da się aby ten div przesyłał tego jsona do JQ ale wyświetlal w PHP coś innego a nie zwaratość json-a ?

  1. <div id="<?php echo $jsn ?>" class='jjj' style='width:90%;border:solid 1px red;height:20px'><?php echo json_encode($dane[$x]);?></div>


Ten post edytował scorpion10 21.03.2023, 11:58:12
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 11.05.2024 - 13:53