Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Input i tablica, bardzo bardzo poczatkujacy
Leeddo
post 27.10.2007, 08:38:42
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 27.10.2007

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


witam
bylem w serczu i na googlach gdzie zalapalem jak korzystac z tablic, ale wiekszosc przykladow jakie widzialem opisuje funkcjonowanie tablic 'po stronie skryptu' nie wiem czy to jasno napisalem ... generalnie chcial bym sie dowiedziec jak wrzucic cos do tablicy korzystajac z inputa

probowalem tak:

  1. <input name="img[]" type="text" />


  1. <?php
  2. error_reporting( E_ALL );
  3. print_r ($_POST);
  4. @$img = addslashes($_POST['img']);
  5. $tab = array($img);
  6. reset($tab);
  7. echo '
  8. ';
  9.  
  10. foreach($tab as $wartosc){
  11. echo $tab.' '.$wartosc.'
  12. ';
  13. }
  14. ?>


wprowadzam ciag 1,2,3
echo zwraca mi:
Array ( [img] => Array ( [0] => 1,2,3 )
Array Array

na pewno jest to banalne, ale nie moge tego rozgryzc,stad prosba o wyjasnienie - jak uzytkownik moze wprowadzic wiele wartosci do tablicy korzystajac z jednego pola input ?

pozdrawiam </br >

Ten post edytował Leeddo 27.10.2007, 15:31:19
Go to the top of the page
+Quote Post
Cysiaczek
post 27.10.2007, 09:54:08
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole

Użyj jesczze jednej petli foreach zagłębionej w tej, którą już masz.
  1. <?php
  2. foreach($tab as $klucz=>$wartosc){
  3. if(is_array($wartosc))
  4. {
  5. foreach(){}
  6. }
  7. else
  8. {
  9. echo $tab.' '.$wartosc.'<br />'; // nie $tab, tylko $klucz
  10. }
  11. }
  12. ?>


Pozdrawiam,


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
drPayton
post 27.10.2007, 10:08:14
Post #3





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Tak na wszelki wypadek:
Cytat
jak uzytkownik moze wprowadzic wiele wartosci do tablicy korzystajac z jednego pola input ?

Na pewno nie w taki sposób.
Ustalając dla name pola input text tablicę powodujesz, że wartość z każdego pola tego typu będzie elementem tablicy. Jeżeli koniecznie chcesz by było to jedno pole tekstowe, to nie ma sensu powyższe rozwiązanie. Trzeba by było (polegając na użytkowniku) określić na przykład sposób rozdzielenia części skłądowych w polu tekstowym (np wprowadza dane oddzielając je średnikami).
Reasumując:
  1. <input name="img[]" type="text" />

Gdy istnieje tylko jedno pole tego typu nie ma większego sensu. Co innego:

  1. <input name="img[]" type="text" />
  2. <input name="img[]" type="text" />
  3. <input name="img[]" type="text" />
  4. <input name="img[]" type="text" />

Wtedy na wyjściu otrzymasz tablicę 4-elementową...

Ten post edytował drPayton 27.10.2007, 10:08:57
Go to the top of the page
+Quote Post
Leeddo
post 27.10.2007, 15:30:19
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 27.10.2007

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


Cytat
Jeżeli koniecznie chcesz by było to jedno pole tekstowe, to nie ma sensu powyższe rozwiązanie.

tak, ma byc jedno pole i chce aby uzytkownik wklepywal numerki oddzielone np. srednikiem (1;2;3), w formularzu jest tylko jedno pole input text
...powyzszy kod nie specialnie chce dzialac, cos sie pusty foreach nie podoba :/

jesli mozna Panie doktorze niech Pan pomoze smile.gif

Ten post edytował Leeddo 27.10.2007, 15:32:54
Go to the top of the page
+Quote Post
Prym
post 27.10.2007, 15:49:40
Post #5





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

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


witam. tutaj to poprostu masz błędne podejscie do tablicy (w wolnej chcili proponuje poczytac o array i jego tworzeniu) a co do problemu to (wazne rzeczy bede pisal duzymi literkami smile.gif ) jesli masz 1 input to nazwij go jak chcesz bo to nie bedzie NIGDY TABLICA jezeli user bedzie wpisywal 1;2;3;4 to taki CIĄG ZNAKÓW ktory dopiero musisz przerobic na tablice.
jesli jestes pewien ze masz ciag znakow podzielona srednikami to stworzenie z tego tablicy jest mozliwe tylkop poprzez explodowanie stringu smile.gif

Kod
<input name="img" type="text"/>

  1. <?php
  2. error_reporting( E_ALL );
  3. print_r ($_POST);
  4. @$img = addslashes($_POST['img']);
  5. $tab = explode(";",$img);
  6. foreach($tab as $wartosc){
  7. echo $tab.' '.$wartosc.'
  8. ';
  9. }
  10. ?>


Ten post edytował Prym 27.10.2007, 15:51:15
Go to the top of the page
+Quote Post
Leeddo
post 27.10.2007, 16:15:22
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 27.10.2007

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


Dzieki Prym, dziala idealnie biggrin.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: 20.05.2025 - 04:15