Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]zmienna POST z checkboxa do tablicy array - jak wstawić?, Problem ze wstawieniem zaznaczonych checkboxów do tablicy array
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Witam wszystkich, otóż mam problem z którym borykam się od paru godzin i wiem, że ten błąd jest strasznie śmieszny ale coś robię ewidentnie źle.
Mam w formularzu form kilka input type checkbox o nazwie ch[].
Chciałbym , żeby wstawiło mi do tablicy array tylko te zaznaczone checkboxy.

  1. <form name="xxl" method="post">
  2. <input type="checkbox" name="ch[]" value="999">
  3. <input type="checkbox" name="ch[]" value="888">
  4. </form>


Oczywiście w/w input jest pokazywany z bazy mysql a przy każdym rekordzie wyświetlana jest inna wartość value. Czyli ile rekordów z bazy tyle inputów.
Teraz kod php

  1. for($ixo=0; $ixo < $ile; $ixo++){
  2.  
  3. $ch = $_POST['ch'][$ixo];
  4. $ch = $ch;
  5. $plik = 'sciezka_do_pliku/'.$ch.'.jpg';
  6. print $plik;
  7. }


print $ch pokazuje mi 2 łączone wartości inputa checkbox czyli 999888
print $plik pokazuje także ścieżke do tych dwóch.

  1. $files_to_zip = array(TU CHCE WSTAWIĆ do tablicy zaznaczone $plik); //
  2.  
  3. $dir = '';
  4. $new_files = array();
  5. foreach($files_to_zip as $value){
  6. $new_files[] = $dir.$value;
  7. }
  8. print_r($new_files);
  9. $archive = new PclZip("spakowany.zip");
  10.  
  11. $files_archive = $archive->add($new_files, PCLZIP_OPT_REMOVE_PATH, $dir, PCLZIP_OPT_ADD_PATH, '');


Czy ktoś może mi pomóc?
Jak wstawię w array zmienną $plik to pakuje mi się tylko 1 zaznaczony.


by_ikar twoja podpowiedź dała wynik:

  1. Array
  2. (
  3. [ch] => Array
  4. (
  5. [0] => 999
  6. [1] => 888
  7. )
  8.  
  9. [xxl] => Pobieraj
  10. )
  11.  
  12. Array
  13. (
  14. [ch] => Array
  15. (
  16. [0] => 999
  17. [1] => 888
  18. )
  19.  
  20. [xxl] => Pobieraj
  21. )


Sorry za usunięcie moich wyżej postów ale zaczynał się śmietnik zrobić, dlatego dałem w 1 post i pozamieniałem to co źle było.

Ten post edytował casperii 14.08.2014, 17:04:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
casperii
post
Post #2





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


by_ikar zrobiłem tak jak napisałeś, wynik w moim pierwszym poście.

Michael kombinuje twoim sposobem, wydaje mi się, że jest prawie ok

  1. $tab = '';
  2. if (!empty($_POST['ch'])){
  3. foreach($_POST['ch'] AS $ch){
  4. $tab .= 'sciezka_do_pliku/'.$ch.'.jpg'.',';
  5. }
  6. $tab = trim($tab, ',');
  7. }
  8.  
  9.  
  10. //print $tab;
  11.  
  12. $files_to_zip = array(''.$tab.'');
  13. $dir = '';
  14. $new_files = array();
  15. foreach($files_to_zip as $value){
  16. $new_files[] = $dir.$value;
  17. }
  18. print_r($new_files);


Problem teraz leży w tego typu sprawie, że jak wybiorę 1 checkbox to jest ok, ale jak wybiorę już 2 checkboxy to wtedy postać w array jest sciezka_do_pliku/999.jpgsciezka_do_pliku/888.jpg i wywala błędem , że dany plik nie istnieje co jest oczywiste. Możesz pomóc jeszcze z tym ?

Ten post edytował casperii 14.08.2014, 17:57:19
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 21:05