Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Przesyłanie danych pomiędzy plikami php
JanMatuszak
post 5.03.2023, 13:18:16
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.10.2020

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


Dzień dobry! Napotkałem w sumie może nawet niespotykany problem. A może wcale to nie jest problem.

Obiektywnie na to patrząc mamy plik formularza (plik1) generowany dynamicznie (ilość pól zależy od ilości rekordów w danej tabeli, dodatkowo dany rekord powtarzającego się formularza okraszam dodatkowym inputem typu radio i potrzebuję uzyskać tablicę 2 wymiarową która będzie przechowywać ID narzędzia oraz jego stan czy kompletność, dzięki któremu będę mógł sobie zaktualizować stan w bazie i tym miałby się zajmować plik2.

I teraz pytanie, jak przenieść dane z formularza do tablicy? Czy serializacja do przesłania po kolei id narzędzi między plikiem 1 a 2 ma sens? Jak odczytać nieznaną ilość danych pochodzących z formularza.

Go to the top of the page
+Quote Post
viking
post 5.03.2023, 13:35:04
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Zmienna $_POST sama w sobie jest tablicą.


--------------------
Go to the top of the page
+Quote Post
JanMatuszak
post 5.03.2023, 15:12:47
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.10.2020

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


Cytat(viking @ 5.03.2023, 13:35:04 ) *
Zmienna $_POST sama w sobie jest tablicą.


Tak, zgadzam się w pełni, jak zatem przesłać 10 stringów w jednej zmiennej post pochodzących z 10 różnych inputów?

Ten post edytował JanMatuszak 5.03.2023, 15:14:38
Go to the top of the page
+Quote Post
viking
post 5.03.2023, 15:16:31
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Ale co produkuje to 10 stringów? W formularzu masz każde pole jako oddzielny element tablicy. Multiselect to kolejna tablica. Jak chcesz to upchać do stringa to serialize albo implode.


--------------------
Go to the top of the page
+Quote Post
frankiejojo
post 5.03.2023, 15:16:56
Post #5





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


Wstaw jakiś separator np:
$zmiennaTotal = $zmienna1.":".$zmienna2.":".$zmienna3 itd;
A jak ją odbierzesz to "poszatkuj" ją po dwukropku
Go to the top of the page
+Quote Post
Salvation
post 5.03.2023, 16:27:23
Post #6





Grupa: Zarejestrowani
Postów: 344
Pomógł: 70
Dołączył: 15.07.2014

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


Cytat(JanMatuszak @ 5.03.2023, 15:12:47 ) *
jak zatem przesłać 10 stringów w jednej zmiennej post pochodzących z 10 różnych inputów?

Nazwij inputy w ten sposób: [name="nazwaZmiennej[]"]
Czyli w HTML to będzie wyglądać tak:
  1. <input type="text" name="inputTest[]" />
  2. <input type="text" name="inputTest[]" />
  3. <input type="text" name="inputTest[]" />
  4. ...

I w $_POST powinieneś otrzymać 10 stringów w tablicy pod kluczem 'inputTest'
Go to the top of the page
+Quote Post
JanMatuszak
post 5.03.2023, 16:37:00
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.10.2020

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


Cytat(viking @ 5.03.2023, 15:16:31 ) *
Ale co produkuje to 10 stringów? ...



Cytat(frankiejojo @ 5.03.2023, 15:16:56 ) *
Wstaw jakiś separator ...



To ja może przedstawię genezę. Robię taki "mini projekt" do kontroli stanu narzędzi w firmie.
Baza wygląda nastepująco:
Tabela: Magazyny, przechowuje informacje o skrzynkach narzędziowych i ich numerach
Tabela: Narzędzia, przechowuje informacje o narzędziach oraz id_walizki w której się znajdują.
Tabela: Przeliczenia, przechowuje dane użytkownika i stanu podczas jego kontroli, znacznik czasu dla przyszłego sortowania.

Idea jest taka...
Odpalamy formularz w którym wskazujemy za pomocą selecta numer walizki,(uzyskujemy listę narzędzi z walizki np. 1. Pobieramy zdjęcie, nazwę i dodajemy do tego input type radio z możliwym stanem narzędzi [jest, niekompletne, nie ma] [1, - , 0]

W każdej z walizek jest różna ilość narzędzi. W jednej 4 a w drugiej 80. Potrzebuję zatem odczytać stan i powiązać go z id narzędzia, a następnie przesłać go do tabeli odpowiedzialnej za przeliczenia.

Stąd potrzebuję 10 stringów, albo 150 stringów. Nie jestem w stanie, zadeklarować, że wystarczy 50 zmiennych zadeklarowanych wcześniej.

Z góry dzięki za odpowiedzi. smile.gif

Cytat(Salvation @ 5.03.2023, 16:27:23 ) *
Nazwij inputy w ten sposób: [name="nazwaZmiennej[]"]
Czyli w HTML to będzie wyglądać tak:
  1. <input type="text" name="inputTest[]" />
  2. <input type="text" name="inputTest[]" />
  3. <input type="text" name="inputTest[]" />
  4. ...

I w $_POST powinieneś otrzymać 10 stringów w tablicy pod kluczem 'inputTest'



Ty wiesz ile będzie inputów potrzebne. W poprzednim poście odpowiedzi uwzględniłem, że tych inputów może być 4 a w innej 60.
Go to the top of the page
+Quote Post
ohm
post 5.03.2023, 17:28:02
Post #8





Grupa: Zarejestrowani
Postów: 619
Pomógł: 143
Dołączył: 22.12.2010

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


Ja właściwie poszedłbym w jakąś sesję i w niej zapisywał odpowiedzi odnośnie pierwszego formularza (czyli np ten nr walizki) i po reloadzie strony generowałbym te inputy z id narzedzia wg wybranej walizki (chociaż wydaje mi sie ze tu tez select z wielokrotnym wyborem przypisanym do id_narzedzia byloby tez calkiem dobrym rozwiazaniem)
Go to the top of the page
+Quote Post
viking
post 5.03.2023, 17:30:39
Post #9





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


To dalej nie zmienia niczego z tego co miałeś powiedziane. Przecież nie piszesz tego ręcznie tylko kod będzie generowany automatycznie z danych z bazy.


--------------------
Go to the top of the page
+Quote Post
JanMatuszak
post 6.03.2023, 12:13:35
Post #10





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.10.2020

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


Witam ponownie!

Wygenerowany kod będzie taki na szybko


  1. <p>nawa</p> <br>
  2. <img src="zdjecie.jpg">
  3. <br><input type='radio' name='prefixid_narzedzia' value='0'>Nie ma
  4. <br><input type='radio' name='prefixid_narzedzia' value='-'>Niekompletne
  5. <br><input type='radio' name='prefixid_narzedzia' value='1'>Jest



Czy mam w ogóle nie definiować postów tylko się nimi posługiwać o to chodzi? Tak? Samo przesłanie odwołuje się do tablicy _POST i tam je umieszcza? Ja aby muszę znać nazwy? Czyli przesłać również wszystkie użyte ID. Chyba już wiem w czym się zafixowałem.
Że zawsze na kolejnej stronie musze je zdefiniować

  1. $id_1 = $_post['id_1']


Tak to rozumiem traktujecie?
Go to the top of the page
+Quote Post
viking
post 6.03.2023, 12:20:22
Post #11





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Zobacz sobie pierwszy z brzegu przykład: https://stackoverflow.com/questions/2018467...-input-as-array
Z tego co napisałeś to głównie interesuje Cię jaki jest stan i osoba zdająca narzędzie, zatem kluczem (atrybutem name) w formie będzie id narzędzia i do niego podpinasz pozostałe wartości. Potem w tablicy wynikowej będziesz miał to ładnie przypisane.


--------------------
Go to the top of the page
+Quote Post
JanMatuszak
post 6.03.2023, 13:32:37
Post #12





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.10.2020

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


No kolego - miód na moje skołatane serce smile.gif
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: 28.04.2024 - 13:57