Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> php widzi tablicę jako napis Array
php programmer
post
Post #1





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Witam mam formularz
  1. <tr><td>zainteresowania</td><td>
  2. <label><input type="checkbox" name="hobby[]" value="motoryzacja" />motoryzacja</label><br />
  3. <label><input type="checkbox" name="hobby[]" value="internet" />internet</label><br />
  4. <label><input type="checkbox" name="hobby[]" value="komputery" />komputery</label><br />
  5. <label><input type="checkbox" name="hobby[]" value="biznes" />biznes</label><br />
  6. <label><input type="checkbox" name="hobby[]" value="książki" />książki</label><br />
  7. <label><input type="checkbox" name="hobby[]" value="sport" />sport</label><br />
  8. <label><input type="checkbox" name="hobby[]" value="gry komputerowe" />gry komputerowe</label><br />
  9. <label><input type="checkbox" name="hobby[]" value="zdrowie" />zdrowie</label><br />
  10.  
  11. <label><input type="checkbox" name="hobby[]" value="moda" />moda</label><br />
  12. <label><input type="checkbox" name="hobby[]" value="film" />film</label><br />
  13. <label><input type="checkbox" name="hobby[]" value="turystyka" />turystyka</label><br />
  14. <label><input type="checkbox" name="hobby[]" value="uroda" />uroda</label><br />
  15. <label><input type="checkbox" name="hobby[]" value="myzyka" />myzyka</label><br />
  16. <label><input type="checkbox" name="hobby[]" value="dom i rodzina" />dom i rodzina</label><br />
  17. <label><input type="checkbox" name="hobby[]" value="zwierzeta" />zwierzeta</label><br />
  18. <label><input type="checkbox" name="hobby[]" value="kuchnia" />kuchnia</label><br />
  19. <label><input type="checkbox" name="hobby[]" value="nauka" />nauka</label><br />
  20.  
  21. <label><input type="checkbox" name="hobby[]" value="komórki" />komórki</label><br /></td><td></td></tr>


i teraz jak w php wezmę
  1. <?php
  2. echo $_POST['hobby'][0]
  3. ?>
to pokazuje mi literę A
  1. <?php
  2. echo $_POST['hobby'][1]
  3. ?>
to pokazuje mi literę r
itd
dlaczego nie mam dostępu do tablicy

Ten post edytował php programmer 18.11.2005, 12:32:25
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




bo twoja tablica to hobby a nie zainteresowania (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
Go to the top of the page
+Quote Post
php programmer
post
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


to była tylko literówka w tutaj,
ale w programie jest hobby :|
Go to the top of the page
+Quote Post
AxZx
post
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


tablice wyswiewtla sie przez print_r
a nie echo
Go to the top of the page
+Quote Post
revyag
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Dostęp do poszczególnych elemetów jest taki:
  1. <?php
  2. foreach($_POST["hobby"] as $hob) {
  3. echo $hob;
  4. }
  5. ?>
Go to the top of the page
+Quote Post
php programmer
post
Post #6





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Cytat(revyag @ 2005-11-18 11:40:08)
Dostęp do poszczególnych elemetów jest taki:
  1. <?php
  2. foreach($_POST["hobby"] as $hob) {
  3. echo $hob;
  4. }
  5. ?>

Invalid argument supplied for foreach()

hm a moze trzeba użyć jakiś specjalny enctype w przypadku przysyłania tablic ?

Może ktoś wie coś na ten temat?

Ten post edytował php programmer 18.11.2005, 13:04:35
Go to the top of the page
+Quote Post
revyag
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


No tak trudno się domyślić ? Jak nie zaznaczysz nic to pewnie że będzie wywalało error.
Wystarczy dodać jeden warunek.
  1. <?php
  2. if(isset($_POST["hobby"]) && !empty($_POST["hobby"])) {
  3. foreach($_POST["hobby"] as $hob) {
  4. echo $hob.'<br />';
  5. }
  6. }
  7. ?>
Go to the top of the page
+Quote Post
php programmer
post
Post #8





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


nie to nie to

  1. <?php
  2.  
  3. if(isset($_POST["hobby"]) && !empty($_POST["hobby"])) {
  4. foreach($_POST["hobby"] as $hob) echo $hob.'<br />';
  5. } else echo 'nie ma takiej tablicy';
  6.  
  7. ?>


jak nic nie zaznacze to napisze, ze nie ma takiej tablicy
a jak cos zaznaczee to dalej taki bład:
Invalid argument supplied for foreach() i

dodam jeszcze że na boku zrobiłem sobie mały skrypcik testowy
  1. <form method="post">
  2. <input type="checkbox" name="test[]" value="ok 2">
  3. <input type="checkbox" name="test[]" value="ok 1">
  4. <input type="submit">
  5. </form>
  6. <? echo $_POST['test'][0]; ?>


i działa bez zarzutu, a może smarty mi coś psuje (bo ten problemowy jest napisany w smarty)?

Ten post edytował php programmer 18.11.2005, 13:13:34
Go to the top of the page
+Quote Post
revyag
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. </head>
  4. <?php
  5. if(isset($_POST["submit"]) && !empty($_POST["submit"])) {
  6. if(isset($_POST["hobby"]) && !empty($_POST["hobby"])) {
  7. foreach($_POST["hobby"] as $hob) {
  8. echo $hob.'<br />';
  9. }
  10. }
  11. }
  12. ?>
  13. <form action="" method="post">
  14. <label><input type="checkbox" name="hobby[]" value="motoryzacja" />motoryzacja</label><br />
  15. <label><input type="checkbox" name="hobby[]" value="internet" />internet</label><br />
  16. <label><input type="checkbox" name="hobby[]" value="komputery" />komputery</label><br />
  17. <label><input type="checkbox" name="hobby[]" value="biznes" />biznes</label><br />
  18. <label><input type="checkbox" name="hobby[]" value="książki" />książki</label><br />
  19. <label><input type="checkbox" name="hobby[]" value="sport" />sport</label><br />
  20. <label><input type="checkbox" name="hobby[]" value="gry komputerowe" />gry komputerowe</label><br />
  21. <label><input type="checkbox" name="hobby[]" value="zdrowie" />zdrowie</label><br />
  22. <input type="submit" name="submit" value="subm">
  23. </form>
  24. </body>
  25. </html>
Go to the top of the page
+Quote Post
php programmer
post
Post #10





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Cytat(AxZx @ 2005-11-18 11:38:13)
tablice wyswiewtla sie przez print_r
a nie echo

nic to nie dało
użycie print_1 także daje napis Array

ps. kod re.. jest dobry najwidoczniej smarty mi cos kaszani

  1. <tr><td>{$hobby_1}{#hobby#}</td><td>
  2. {html_checkboxes name="hobby" values=$hobby_values selected=$hobby_3 output=$hobby_output separator="<br />"}</td><td>{$hobby_2}</td></tr>


Ten post edytował php programmer 18.11.2005, 13:47:23
Go to the top of the page
+Quote Post
nospor
post
Post #11





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




panowie, tutaj ewidentnie zmienna $_POST['hobby'] jest napis array a nie tablica i dlatego nie dziala foreach.
Wprwadzilem se formularz co podał autor i u mnie jest ok. Domyslam sie wiec, ze problem moze jest w tym, iz nie pokazano nam całego formularza i gdzieś tam jest jeszcze jakis blad.
@php programmer pokaz nam caly formualrz od słowa <form ... poczawszy s konczywszy na </form>
Go to the top of the page
+Quote Post
php programmer
post
Post #12





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


ok problem polegał na tym, że najpier form szedł do formularza
sprawdzającego, a potem ten formularz sprawdzający
w pętli for przekazywał wszystkie post w ukrytych polach
do właściwiego skryptu odbierającego,
a że checkboxy były jako talica wiec nie mogly byc przekazane jak zywkłe ukryte pole,

matko straciłem na to 3 godziny (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował php programmer 18.11.2005, 14:29:52
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: 24.08.2025 - 07:43