[JavaScript][AJAX][PHP] Tabela z Danymi z BAzy MySQL - reakcja na kliknięcie jQuery |
[JavaScript][AJAX][PHP] Tabela z Danymi z BAzy MySQL - reakcja na kliknięcie jQuery |
19.04.2021, 09:40:28
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 8.07.2016 Ostrzeżenie: (0%) |
Pobrane z Bazy dane trafiają do Tabeli umieszczonej w Div a na każdy wiersz tabeli <TR> ustawiona jest reakcja na klikniecie i obsługa tego klliknięcia w jQuery/Ajax która ma wyświetlić dane z klikniętego wiersza tabeli w <DIV> obok.
I niby to działa ale tylko na pierwszy wiersz tabeli i jeden rekord, zawsze pierwszy pobrany w pętli w PHP. Jak zrobić by jQuery / Ajax przekazywał dane po kliknięciu w każdy wiersz tabeli a nie tylko pierwszy ? żeby jakoś zapamiętał ID pobranych rekordów z bazy, z góry dziękuje za pomoc. Do obsługi tego użyłem trzech plików :: Pobranie danych z bazy do formularza Kod <div class="przekazanie_sr"> <?php $pracownicy = "SELECT P.nazwisko,P.imie,L.pokoj,S.stanowisko,U.miejscowosc,P.ID_pracownik FROM tb_workers P INNER JOIN sl_lokalizacja L ON P.ID_lokalizacja = L.ID_lokalizacja INNER JOIN sl_stanowisko S ON P.ID_stanowisko = S.ID_stanowisko LEFT JOIN sl_urzad U ON U.ID_urzad = L.ID_urzad ORDER BY 2"; $wynikprac = $db->query($pracownicy); ?> <table id='przekazanie'> <form method="POST"> <?php while($row=mysqli_fetch_array($wynikprac)){ $im = $row['imie']; $naz = $row['nazwisko']; $idd = $row['ID_pracownik']; $rekord = $row['idprac']; echo "<tr id='osobnik'>"; if($row['nazwisko']){ echo "<td><font size='2'>".$row['nazwisko']."</font></td>"; } else { echo "<td><font size='1' color='red'><i>Brak Kategorii !</i></font></td>"; } echo "<td><font size='3'>".$row['imie']."</font></td>"; echo "<td><font size='2'>".$row['pokoj']."</font></td>"; echo "<td><font size='2'>".$row['miejscowosc']."</font></td>"; echo "<td><font size='2'>".$row['stanowisko']."</font></td> "; echo '<script src="scripts/osoba.js"></script>'; ?> <input type="hidden" id="name" value=<?php echo $im ?>> <input type="hidden" id="surname" value=<?php echo $naz ?>> <input type="hidden" id="idf" value=<?php echo $idd ?>> <?php } ?> </form> </table> </div> obsługa w jQuery/Ajax Kod $(document).ready(function(){ $("#osobnik").click(function(){ var imiee = $('#name').val() var nazwiskoo = $('#surname').val() var ido = $('#idf').val(); var ajax = $.ajax ({ url:'ajax.php', type:'POST', data:{imie:imiee,nazwisko:nazwiskoo,idx:ido} }); ajax.done(function(msg){ $('#komu').html(msg); console.log("SUCESS !"); console.log(imiee); console.log(nazwiskoo); console.log(ido); }); ajax.fail(function(){ console.log('BĹÄ„D !!!!'); }); ajax.always(function(){ console.log('ZAMYKAM POĹACZENIE'); }); }); }); Odebranie danych z Ajax przez PHP Kod <?php
$a = ($_POST['imie']); $b = ($_POST['nazwisko']); $c = ($_POST['idx']); echo $a; echo $b; echo $c; ?> <div id="Dane" style="border:solid 1px black"></div> |
|
|
19.04.2021, 09:56:36
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
var imiee = $('#name').val()
var nazwiskoo = $('#surname').val() var ido = $('#idf').val(); Tutaj zawsze pobierasz dane z tego samego ID. Jak wszystkie pola maja to samo ID to zawsze ci zwroci z pierwszego znalezionego. Na klikniecie masz pobeirac dane z wiersza na ktorym kliknieta a nie z ogolnego ID. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
19.04.2021, 10:19:10
Post
#3
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 8.07.2016 Ostrzeżenie: (0%) |
Mógł byś podać jakiś przykład, jak to zmienić w jQuery by odbierał z każdego wiersza <TR> ? Bo w samej źródłowej tabeli z danymi są oczywiscie ID, inne dla każdego rekordu, ale nie mogę ogarnąć jak w JQuery rozpoznać to ID po kliknięciu w wiersz tabeli ? A może w samym pliku PHP należało by coś zmienić ?
|
|
|
19.04.2021, 10:22:25
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
Masz uzywac KLAS a nie ID
Nie echo "<tr id='osobnik'>"; a: echo "<tr classs='osobnik'>"; Nie $("#osobnik").click(function(){ a: $(".osobnik").click(function(){ nie <input type="hidden" id="name" value=<?php echo $im ?>> a: <input type="hidden" class="name" value=<?php echo $im ?>> inne pola tak samo Nie var imiee = $('#name').val() a: trObj = jQuery(this); var imiee = trObj.find(".name").val(); inne pola tak samo -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.04.2021, 07:52:45
Post
#5
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 8.07.2016 Ostrzeżenie: (0%) |
Wielkie, wielkie dzięki za pomoc :-) Działa już OK !
Chciałbym jeszce wrócić do Tematu, po sprawdzeniu, mam jeszcze jeden mały problem. Jeżeli w polu rekordu w bazie mam zapis kilku wyrazowy, rozdzielonych spacją np. "Spółka Prawna", to zmienna np. var nazwa = trObj.find('.nazwa').val() przyjmuje wartość tylko pierwszego wyrazu z pola rekordu i ma wartość w tym przykładzie "Spółka", co należało by zmienić by przyjeła wartość całego pola bo niestety ale z jQuery dopiero zaczynam przygodę |
|
|
20.04.2021, 09:20:23
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
No bo nie
value=<?php echo $im ?> a value="<?php echo $im ?>" -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.04.2021, 09:23:58
Post
#7
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 8.07.2016 Ostrzeżenie: (0%) |
ehhh , no tak przecież to String i powinien być w " " Dzięki kolejny raz @nospor :-)
|
|
|
20.04.2021, 10:29:13
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
string nie string, nie wazne. Symantyka jest taka, ze zawsze maja byc tam cudzyslowia i tyle
Tak jak pisales id="name" a nie id=name Jak value bedzie 5 to tez ma byc value="5" -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 13:59 |