Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Input i tablica, bardzo bardzo poczatkujacy
Leeddo
post
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
 
Start new topic
Odpowiedzi (1 - 5)
Cysiaczek
post
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,
Go to the top of the page
+Quote Post
drPayton
post
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
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Leeddo 27.10.2007, 15:32:54
Go to the top of the page
+Quote Post
Prym
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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
Post #6





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

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


Dzieki Prym, dziala idealnie (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:29