Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wysyłanie POSTEM "niezaznaczonego" checkboxa
mistrzuniu1
post 3.01.2017, 21:00:46
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.12.2016

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


Jest jakiś sposób na wysłanie POSTEM niezaznaczego checkboxa?

Tzn mam kilka tych checkboxów, których name="tablica[]" i chciałbym, aby wysyłane były POSTEM te niezaznaczone/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Kshyhoo
post 3.01.2017, 21:12:39
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To?

A tak w ogóle, to możesz robić tak:
  1. <input type="hidden" name="pole" value="0" />
  2. <input type="checkbox" name="pole" value="1" />


--------------------
Go to the top of the page
+Quote Post
mistrzuniu1
post 3.01.2017, 21:20:33
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.12.2016

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


Cytat(Kshyhoo @ 3.01.2017, 21:12:39 ) *
To?

A tak w ogóle, to możesz robić tak:
  1. <input type="hidden" name="pole" value="0" />
  2. <input type="checkbox" name="pole" value="1" />


Tylko, że ja pod value mam id z bazy danych do którego się odwołuje.
I chciałbym sie odwołać właśnie do nich

  1. <input type="checkbox" name="check_list[]" value="C/C++"><label>C/C++</label>
  2. <input type="checkbox" name="check_list[]" value="Java"><label>Java</label>
  3. <input type="checkbox" name="check_list[]" value="PHP"><label>PHP</label>
  4. <input type="checkbox" name="check_list[]" value="HTML/CSS"><label>HTML/CSS</label>
  5. <input type="checkbox" name="check_list[]" value="UNIX/LINUX"><label>UNIX/LINUX</label>


Mam coś podobnego do tego i chciałbym, żeby value niezaznaczone wyslalo sie w POST, gdzie dalej w php robie w zmiennej sesyjnej tablice zlozona z niezaznaczonych elementów.
Go to the top of the page
+Quote Post
Pyton_000
post 3.01.2017, 21:40:13
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Pokrętna logika. Skoro masz to wyciągane z BD to po wysłaniu wybierz z BD wszystko co NIE jest ID przesłanym.
Przypisanie danych pobranych od usera to nie jest dobry pomysł. Musisz zweryfikować te dane.
Go to the top of the page
+Quote Post
mistrzuniu1
post 3.01.2017, 21:47:39
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.12.2016

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


Cytat(Pyton_000 @ 3.01.2017, 21:40:13 ) *
Pokrętna logika. Skoro masz to wyciągane z BD to po wysłaniu wybierz z BD wszystko co NIE jest ID przesłanym.
Przypisanie danych pobranych od usera to nie jest dobry pomysł. Musisz zweryfikować te dane.


Hmm, tak tez nie da rady.
To jest jakby na zasadzie "ulubionych"
User wybiera swoje ulubione np. zdjecia, wysyła je postem. Ja tworze mu galerie jego ulubionych zdjęć. Teraz z tych ulubionych on wybiera kilka i klika "usun" i na tej podstawie tworze znów galerie ulubionych.
Go to the top of the page
+Quote Post
Pyton_000
post 3.01.2017, 21:53:13
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


No to przekazuj sobie dodatkowo do pola hidden aktualną tablicę z danymi w formacie json, potem przy wysyłaniu bierzesz tą tablicę i już. Wywalasz z niej zaznaczone i koniec.
Go to the top of the page
+Quote Post
mistrzuniu1
post 3.01.2017, 22:24:36
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.12.2016

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


Cytat(Pyton_000 @ 3.01.2017, 21:53:13 ) *
No to przekazuj sobie dodatkowo do pola hidden aktualną tablicę z danymi w formacie json, potem przy wysyłaniu bierzesz tą tablicę i już. Wywalasz z niej zaznaczone i koniec.


Nigdy nie używałem JSON.
Jest jakas funkcja, która przekonwertuje mi moją aktualna tablice na format json?
Go to the top of the page
+Quote Post
arturpiotrowski
post 3.01.2017, 22:32:12
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

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


http://php.net/manual/en/function.json-encode.php ?
Go to the top of the page
+Quote Post
mistrzuniu1
post 4.01.2017, 16:16:42
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.12.2016

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


<input type="hidden" name="tablica[]" value="<?=json_encode($_SESSION['animals'])?>">

Chodzi co cos takiego?
Jak mogę wykorzystać teraz ta tablice?

Czy tablica w formacie JSON mogę posługiwać się tak samo jak zwykła tablica?
Tzn czyścić pamieć unset, i przepisywac poprostu znakiem"="?
Go to the top of the page
+Quote Post
Tomplus
post 4.01.2017, 16:23:06
Post #10





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Po przesłaniu przez formularz stosujesz odwrotność do json_encode czyli:
  1. $myAnimals = json_decode($_POST[$klucz_tablicy_json], true);
  2. echo "Mój kotek ma na imię: ".$myAnimals['cat'];


Ten post edytował Tomplus 4.01.2017, 16:24:49
Go to the top of the page
+Quote Post
mistrzuniu1
post 4.01.2017, 16:53:11
Post #11





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.12.2016

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


Tak wysyłam:
  1. <input type="hidden" name="tablica[]" value=<?=json_encode($_SESSION['animals'])?>>


Tak probuje robocze odczytać wartości

  1. var_dump(json_decode($_POST['tablica']));


I dostaje taki komunikat, jakoby wysłana tablica nie istniała ;/
Warning: json_decode() expects parameter 1 to be string, array given in /var/www/dev/web/galeriawphpulubione.php on line 28
NULL


Podszedłem troche inaczej do tego problemu

  1. if(isset($_POST['check_list_out']))
  2. {
  3. $ile=count($_SESSION['animals']);
  4. $ile1=count($_POST['check_list_out']);
  5. for($i=0; $i<$ile1; $i++)
  6. {
  7. for($x=0; $x<$ile; $x++)
  8.  
  9. {
  10. if($_SESSION['animals'][$x]==$_POST['check_list_out'][$i]);
  11. unset($_SESSION['animals'][$x]);
  12. }
  13. }
  14. }


Tylko, że teraz usuwa nie zaznaczone, ale wszystkie elementy.
Jak mogę temu zaradzic?
Go to the top of the page
+Quote Post
Niree
post 5.01.2017, 00:49:58
Post #12





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


tablica
pętla
sprawdzasz czy jest zaznaczony
reszta kodu

Przykład:

<input name="test[]" type="checkbox" value="Blabla">
<input name="test[]" type="checkbox" value="Blabla2">
<input name="test[]" type="checkbox" value="Blabla3">
<input name="test[]" type="checkbox" value="Blabla4">
<input name="test[]" type="checkbox" value="Blabla5">

  1. if(isset($_POST['test']))
  2. {
  3. for($x=0; $x < count($_POST['test']);$x++)
  4. {
  5. if(isset($_POST['test'][$x])) echo 'zaznaczony'; else echo 'niezaznaczony';
  6. }
  7. }


Zaznaczone odejmujesz od niezaznaczonych i masz liste niezaznaczonych.

Ten post edytował Niree 5.01.2017, 00:54:21
Go to the top of the page
+Quote Post
Tomplus
post 5.01.2017, 11:31:24
Post #13





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Cytat(mistrzuniu1 @ 4.01.2017, 16:53:11 ) *
I dostaje taki komunikat, jakoby wysłana tablica nie istniała ;/
Warning: json_decode() expects parameter 1 to be string, array given in /var/www/dev/web/galeriawphpulubione.php on line 28
NULL


Bo wprowadzasz json_decode() tablicę, a nie string.

Gdybyś zamiast name='tablica[]' użył name='tablica' to miałbyś zgłowy.
inaczej twój POST wygląda tak:

$_POST['tablica'][0] = '{"json":"jakis string JSON"}';
więc sam rozumiesz $_POST['tablica'] to jest ARRAY, a to $_POST['tablica'][0] STRING.
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: 14.08.2025 - 07:59