Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP] jak odczytać id poszczególnego wiersza
pietroff
post 23.09.2020, 14:25:07
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


Cześć,

mam taki problem wyświetlam dane z bazy za pomocą pętli:
  1. <form action="" method="post" enctype="multipart/form-data">
  2. <?php
  3. while($row = $stmt->fetch()){
  4. ?>
  5. <input type="text" name="lp[]" value="<?php echo $row['nr_etapu']; ?>" disabled=""/>
  6. <input type="text" name="nazwaEtapu[]" value="<?php echo $row['nazwa_etapu']; ?>" disabled=""/>
  7. <input type="text" name="opisDzialan[]" value="<?php echo $row['opis_etapu']; ?>" disabled=""/>
  8. <input type="text" name="okresRealizacji[]" value="<?php echo $row['okres_realizacji']; ?>" disabled=""/>
  9. <input type="text" hidden="" name="nrWiersza" value="<?php echo $row['nr_etapu']; ?>" />
  10. <input type="submit" name="usunWiersz" value="Usuń" />
  11. <?php }?>
  12. </form>
  13.  


Nie wiem teraz w jaki sposób odnieść się do konkretnego nr_etapu?

próbowałem tak:
  1. if (isset($_POST['usunWiersz'])){
  2. $idWniosku = $rowForm['id_wniosku'];
  3. $numerWiersza = $_POST['nrWiersza'];
  4. $harmonogram->usunWiersz($idWniosku, $numerWiersza);
  5. }
  6.  


To działa tylko usuwa zawsze pozycję ostatnią. Czy możecie podpowiedzieć jakieś rozwiązanie tego problemu?

Ten post edytował pietroff 23.09.2020, 14:27:00
Go to the top of the page
+Quote Post
nospor
post 23.09.2020, 14:54:20
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Zamiast w jednym formie wrzucac tysiace wierszy, zrob form na kazdy wiersz. Wowczas bedzie ci szlo tylko to co cie interesuje


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

"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
pietroff
post 24.09.2020, 13:21:55
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


A w jaki sposób odświeżyć tylko includowaną część strony? Bo po usunięciu wiersza nie widać czy został usunięty, dopiero jak odświeżę stronę to widać efekt. Próbowałem przez:

  1. header('Location: strona.php');


Tylko wtedy wraca do początku strony. Bo tych includów mam więcej i w tym scenariuszu wraca do momentu gdzie nic nie jest includowane. Czy wiecie jak to ugryźć?
Go to the top of the page
+Quote Post
nospor
post 24.09.2020, 13:37:55
Post #4





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




najpierw usuwaj a potem dopiro generuj liste. to chyba oczywiste... 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
pietroff
post 24.09.2020, 13:43:42
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


Robię tak:
  1. if (isset($_POST['usunWiersz'])){
  2. $idWniosku = $rowForm['id_wniosku'];
  3. $numerWiersza = $_POST['nrWiersza'];
  4. $harmonogram->usunWiersz($idWniosku, $numerWiersza);
  5. header("Location: strona.php");
  6. }
  7.  


Ale po wszystkim wraca do momentu gdzie nie includuję, a potrzebuję wrócić do miejsca gdzie byłem przed naciśnięciem buttona usunWiersz ale bez wcześniej usuniętego wiersza smile.gif Czy jest na to jakas opcja czy tylko JS?
Go to the top of the page
+Quote Post
trueblue
post 24.09.2020, 13:50:06
Post #6





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

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


Nadaj id dla wierszy, np. wiersz-nrWiersza. W PHP przekieruj na URL: strona.php#wiersz-nrWiersza, gdzie nrWiersza jest numerem wiersza wcześniejszego od usuwanego (albo na URL: strona.php jeśli to pierwszy wiersz).


--------------------
Go to the top of the page
+Quote Post
pietroff
post 24.09.2020, 14:38:39
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


No tylko mam to zrobione w taki sposób:

  1. <div>
  2. if(isset($_POST['button1']{
  3. include formularz1.php;
  4. }if(isset($_POST['button2']{
  5. include formularz2.php;
  6. }if(isset($_POST['button3']{
  7. include formularz3.php;
  8. }
  9. .
  10. .
  11. .
  12. </div>


I jak to odświeżyć aby pozostało na formularzu np. 2?
Go to the top of the page
+Quote Post
trueblue
post 24.09.2020, 14:42:34
Post #8





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

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


Tak jak powyżej napisałem.

Icludujesz tyle plików formularzX.php ile jest wierszy?
Przecież do tego wystarczy jeden kod formularza i jeden kod obsługujący usuwanie.


--------------------
Go to the top of the page
+Quote Post
pietroff
post 24.09.2020, 14:47:33
Post #9





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


każdy include odpowiada za poszczególną część całego wniosku. Wypełniam jedną część przechodzę dalej zapisując do bazy to co wpisane i ładuję następną część wniosku. Jedna z części tego wniosku ma mieć możliwość usunięcia wierszy jeśli będzie potrzeba edycji wniosku i to działa tylko zależy mi na tym aby odświeżać akurat ten includowany kawałek wniosku.
Go to the top of the page
+Quote Post
trueblue
post 24.09.2020, 15:14:05
Post #10





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

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


Używaj innych adresów dla każdego kroku "dużego" formularza.
Skoro nie stosujesz przyjaznych linków, to po prostu strona.php?krok=X
Musisz sprawdzać czy jest możliwe przejście do następnego/późniejszego kroku (czyli zapisywać w sesji fakt wypełnienia kroku wcześniej). Może też być sytuacja gdy ktoś wróci do kroku wcześniejszego, jeśli to umożliwiasz, to musiałbyś decydować co z danymi wprowadzonymi w krokach późniejszych.


--------------------
Go to the top of the page
+Quote Post
pietroff
post 24.09.2020, 15:48:47
Post #11





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


Przechodzenie z jednej do drugiej części formularza realizuję tak, że mam dwa buttony, pierwszy wróć drugi przejdź dalej, do tego pola formularza są required więc nie ma możliwości przejść dalej nie wypełniając wszystkich pól wymaganych. Jeśli wypełniamy wszystko przechodzimy dalej z automatycznym zapisem tego co już wpisaliśmy. Jak wrócimy do poprzedniego formularza to z bazy zaciągam to co było wpisane wcześniej pod value. Jeśli coś zmienię i kliknę znów dalej to uruchamiam metodę update. Jak dojdę do rzeczowej części formularza to w niej mam dodawane wiersze i realizuje to za pomocą JS po przejściu dalej wyświetla się kolejna część wniosku. Jak wrócę to mam np wypełnione 10 wierszy i przy każdym mam buttona usunDanyWiersz. I wszystko działa bez zastrzeżeń tylko chciałbym odświeżać właśnie to miejsce po to aby było widać w czasie rzeczywistym że usunięto to pole smile.gif . I póki co utknąłem na tym sciana.gif

Ten post edytował pietroff 24.09.2020, 15:56:31
Go to the top of the page
+Quote Post
trueblue
post 24.09.2020, 17:41:08
Post #12





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

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


Nie bardzo rozumiem co dokładnie chcesz zrobić.
Masz zrobione usuwanie z pomocą JS, czyli poprzez wywołanie skryptu PHP z pomocą Ajax, tak? Jeśli tak jest, a wiersz pozostaje na ekranie, to musisz wiersz usunąć również z pomocą JS: https://htmldom.dev/remove-an-element


--------------------
Go to the top of the page
+Quote Post
pietroff
post 25.09.2020, 12:09:04
Post #13





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


W skrócie chciałbym odświeżyć tylko jednego diva w includowanym pliku
Go to the top of the page
+Quote Post
trueblue
post 25.09.2020, 12:11:48
Post #14





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

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


W includowanym pliki nic się nie odświeża, odświeża się co najwyżej kod HTML, który wygenerujesz z includowanego kodu PHP.
Jeśli robisz tak jak wyżej opisałem, to jest tam też rozwiązanie.


--------------------
Go to the top of the page
+Quote Post
pietroff
post 25.09.2020, 15:02:56
Post #15





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


Rozwiązałem to inaczej, po wywołaniu metody usuń wiersz aktualizuje zapytanie do bazy danych i następnie jeszcze raz includuję ta część formularza smile.gif Dzięki za pomoc i wskazówki
Go to the top of the page
+Quote Post
nospor
post 25.09.2020, 15:05:07
Post #16





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No przeciez to wlasnie mowilem od samego poczatku
Cytat
najpierw usuwaj a potem dopiro generuj liste.


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

"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

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: 29.03.2024 - 14:18