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
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Tu masz gotowy kod z mojej aplikacji. Jako value mam podane ID danego rekordu (masowe usuwanie, poprzez zaznaczanie checkboxa).

  1. $tab_del_news = '';
  2. if ( !empty($_POST['del_news']) )
  3. {
  4. foreach($_POST['del_news'] AS $del_news)
  5. {
  6. if ( empty($_POST['del_news']) )
  7. {
  8. continue;
  9. }
  10. else
  11. {
  12. $tab_del_news .= intval($del_news).', ';
  13. }
  14. }
  15.  
  16. $tab_del_news = trim($tab_del_news, ',');
  17. $sql = "DELETE FROM ".NEWS_INFO." WHERE info_for_uid = ".$userdata['user_id']." AND info_id IN (".$tab_del_news.")";
  18. if ( !($result = $db->sql_query($sql)) )
  19. {
  20. message_die(GENERAL_ERROR, 'Could not delete info in news_info table.', '', __LINE__, __FILE__, $sql);
  21. }
  22. }


Do zmiennej $tab_del_news jest doklejane każde ID zaznaczonego rekordu, po kolei, po przecinku, potem zmienna leci do warunku SQL.

$_POST['del_news'] to odpowiednik Twojego $ch[] (czyli $_POST['ch']).

Ten post edytował Michael2318 14.08.2014, 15:48:26
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: 6.10.2025 - 08:57