Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Zmienne dzięki pętli., Poprawność kodu
Rewil
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Witam, mam pytanie odnośnie poprawności, kodu bo nie mam jak go za bardzo sprawdzić. Więc, chciał bym się dowiedzieć, jak te POSTY poprawnie napisać. Chodzi żeby, robiło automatycznie takie zmienne:
$link1 = $_POST['link1'];
$link2 = $_POST['link2'];
$link3 = $_POST['link3'];
$link4 = $_POST['link4'];
$link5 = $_POST['link5'];

  1. <?
  2.  
  3.  
  4. $x=1;
  5. while($x <= 5){
  6. ${imie.$x} = ${_POST[imie.$x.]};
  7. ${nazwisko.$x} = ${_POST[nazwisko.$x.]};
  8. ${imie_nazw.$x} = ${imie.$x}."_".${nazwisko.$x};
  9. ${obrazenia.$x} = ${_POST[obrazenia.$x.]};
  10. ${link.$x} = ${_POST[link.$x.]};
  11. $x++;
  12. }
  13. ?>


Później, w buttonie będzie coś takiego:
  1. <?
  2. $x=1;
  3. while($x <= 5){
  4. mysql_query("INSERT INTO choroby (time_id, imie_nazw, obrazenia, link, data, user_id) VALUES (LAST_INSERT_ID(), '${imie_nazw.$x}', '${obrazenia.$x}', '${link.$x}', '$data_pacjent', '$user_id')");
  5. $x++;
  6. }
  7. ?>


Ten post edytował Rewil 28.09.2009, 22:44:31
Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1.  
  2. for($ = 0; $i <= 5; $i++) {
  3.  
  4.  
  5. $$imie.$x = $_POST['imie'.$i];
  6. $$nazwisko.$x = $_POST['nazwisko'.$i];
  7. $$imie_nazw.$x = $imie.$x."_".$nazwisko.$i;
  8. $$obrazenia.$x = $_POST['obrazenia'.$i];
  9. $$link.$x = $_POST['link'.$i.];
  10.    
  11. }
  12.  
  13.  


CHyba cos takiego powinno dzialac

Go to the top of the page
+Quote Post
Rewil
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Niestety wywala, błąd dzięki Marcio, za odpowiedz. Z tego co udało, mi się dojść, to forma zapisu: ${imie.$x} Jest poprawna, ale krzaczy się przy ${_POST[nazwisko.$x.]};
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Kompletnym nieporozumieniem jest takie gimnastykowanie się.
Zmień formularz tak by do skryptu przychodziła tablica w postaci $_POST['link'][]

Ten post edytował mike 29.09.2009, 10:58:11
Go to the top of the page
+Quote Post
Rewil
post
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Cytat(mike @ 29.09.2009, 11:58:04 ) *
Kompletnym nieporozumieniem jest takie gimnastykowanie się.
Zmień formularz tak by do skryptu przychodziła tablica w postaci $_POST['link'][]


To znaczy? Nie za bardzo, zrozumiałem.
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


To znaczy, że Twój formularz wygląda podobnie do:
  1. <input type="text" name="link1" />
  2. <input type="text" name="link2" />
  3. <input type="text" name="link3" />

a ma wyglądać:
  1. <input type="text" name="link[]" />
  2. <input type="text" name="link[]" />
  3. <input type="text" name="link[]" />


P.S.
Dlaczego ten wątek nie jest na Przedszkolu?
Go to the top of the page
+Quote Post
Rewil
post
Post #7





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Nie, moge zrobić tak jak ty chcesz. Bo, mam za bardzo namieszane, w kodzie, zmianiając na takie coś jak, ty myślisz to bym musiał all od nowa robić ;x.

Potrzebuje, pętlą w php, tyle że poprawnie sformułowany post /oh.
Go to the top of the page
+Quote Post
mike
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Masz błąd u podstaw i decydujesz się nie poprawiać go ale brnąć w bagno dalej.
Głupota.

Naturalną rzeczą jest poprawienie błędu popełnionego na etapie projektowania.
Go to the top of the page
+Quote Post
Rewil
post
Post #9





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Ostatnie, chyba pytanie i temat do zamknięcia. Jak, już zrobiłem tą twoją, metodą to znaczy iż, inputy przyjmują taką formę:
  1. <p id="duplicate">
  2. <label for="imie0"/>
  3. <input id="imie0" type="text" size="50" name="imie[]"/>
  4. <label for="nazwisko1"/>
  5. <input id="nazwisko1" type="text" size="50" name="nazwisko[]"/>
  6. <label for="obrazenia2"/>
  7. <input id="obrazenia2" type="text" size="50" name="obrazenia[]"/>
  8. <label for="link3"/>
  9. <input id="link3" type="text" size="50" name="link[]"/>
  10. </p>
  11. <p id="duplicate0">
  12. <label for="imie4"/>
  13. <input id="imie4" type="text" size="50" name="imie[]"/>
  14. <label for="nazwisko5"/>
  15. <input id="nazwisko5" type="text" size="50" name="nazwisko[]"/>
  16. <label for="obrazenia6"/>
  17. <input id="obrazenia6" type="text" size="50" name="obrazenia[]"/>
  18. <label for="link7"/>
  19. <input id="link7" type="text" size="50" name="link[]"/>


To metoda w php, _POST[imie0]; przestaje działać, bo ona(tak mi się, zdaje) wysyła po zawartości name inputow. Jak, wysyłać tym, samym sposobem, tyle żeby po id?
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




po pierwsze:
nie: $_POST[imie0]
a: $_POST['imie'][0]

po drugie:
zrob sobie print_r($_POST) a zobaczysz jak to idzie postem.

po trzecie: jak chcesz miec ID w imie, to zrob:
<input id="imie0" type="text" size="50" name="imie[2]"/>
gdzie 2 to dane ID
Go to the top of the page
+Quote Post
Dumdas
post
Post #11





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 8.10.2009
Skąd: Lubin

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


Po id się nie da bezpośrednio. Musiałbyś się bawić z js na zamienianie id w name, ale to po prostu nie ma sensu. Najlepiej będzie Ci mieć id i name takie samo dla 1 inputa.

Ten post edytował Dumdas 10.10.2009, 13:12:33
Go to the top of the page
+Quote Post
Rewil
post
Post #12





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Hmm, jak się nie da bezpośrednio po id. To zmienia, kolej rzeczy:
  1. <p id='duplicate'><label for="imie"></label><input id="imie" type="text" name="imie" size="50">

Inputy są, generowane przez jQuery. Gdzie ich, forma wygląda właśnie w ten sposób, tamto poprzednie to było po wygenerowaniu strony.
Go to the top of the page
+Quote Post
nospor
post
Post #13





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




jak sie nie da? Napisalem ci przeciez: imie[2]
Go to the top of the page
+Quote Post
Dumdas
post
Post #14





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 8.10.2009
Skąd: Lubin

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


Nospor, ale to nie będzie odwołanie się bezpośrednio do id, ale dalej do name. Nie można bezpośrednio do id się odwołać.

Ten post edytował Dumdas 10.10.2009, 13:36:07
Go to the top of the page
+Quote Post
nospor
post
Post #15





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




no tak. formularz wysyła to co jest w name a nie to co jest w id. skad ten pomysl by miał wysyłać po ID (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Rewil
post
Post #16





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


No, nie wiem. Już, próbowałem jak mówisz, i cały czas id, zmienia natomiast name, zostaje w stylu xxx[].
http://samers.h14.pl/dodawanie_zapisujace.html <-- Może, to coś pomoże. W, tym chciałem zastosować, takie rozwiązanie.

//Nie odświeżyłem.

Chodzi o to, iż wysyłanie dlatego po id, bo mam cały skrypt ustawiony żeby, wysyłał imie1, imie2, imie3... Po wygenerowaniu strony, tylko id zmienia na taką, formę zapis, natomiast name już nie, co za tym idzie. Nie, dochodzi do bazy ;].

Ten post edytował Rewil 10.10.2009, 13:45:21
Go to the top of the page
+Quote Post
Dumdas
post
Post #17





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 8.10.2009
Skąd: Lubin

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


Nie no, połącz to, co ja napisałem z tym, co napisali inni.
Powinno Ci wyjść coś takiego:
<input id="id_inputa" name="name[id_inputa]" />
Tylko, ze to musisz ręcznie poustawiać i bd śmigać jeżeli o takie rozwiązanie Ci chodziło (IMG:style_emoticons/default/winksmiley.jpg) .

@edit
Wytłumacz w takim razie to dokładniej:
Cytat
No, nie wiem. Już, próbowałem jak mówisz, i cały czas id, zmienia natomiast name, zostaje w stylu xxx[].
bo nie rozumiem.

Ten post edytował Dumdas 10.10.2009, 13:47:11
Go to the top of the page
+Quote Post
Rewil
post
Post #18





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Powinno być, tak:
<input id="id_inputa" name="name[id_inputa]" />

Mam tak:
<input id="imie" type="text" name="imie[imie]" size="50">

Po wyświetleniu dalej jest tak:
<input id="imie" type="text" name="imie[]" size="50">

Wrzucać, to do pętli? I w klamry, dać "i" ? Tylko, nie wiem czy jQuery to przyjmie ;x
Go to the top of the page
+Quote Post
Dumdas
post
Post #19





Grupa: Zarejestrowani
Postów: 65
Pomógł: 7
Dołączył: 8.10.2009
Skąd: Lubin

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


Dobra, dalej nie rozumiem, może ja napiszę jak to powinno być żeby osiągnąć jaki skutek.
<input id="idinputa" name="idinputa" /> - wartość zapisana w $_POST['idinputa'];
<input id="idinputa" name="name[idinputa]" /> - wartość zapisana w $_POST['name']['idinputa'];
<input id="idinputa" name="name[]" /> - wartość zapisana w $_POST['name'][index_liczbowy];
Teraz z tego skleć co chcesz ;P
Go to the top of the page
+Quote Post
Rewil
post
Post #20





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Działa, kocham cię. ;d

Ten post edytował Rewil 10.10.2009, 14:27:52
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 06:11