Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Blokowanie Checkboxów - problem z przesyłem
Forum PHP.pl > Forum > Przedszkole
mokater
Hej, mam pewien problem. Otóż napisałem iż po określonym czasie blokuje wszystkie checkboxy i należy wysłać test do oceny.
Blokuje checkboxy poleceniem:
$('.oknoTestu input[type=checkbox]').attr('disabled', true);
Problem polega na tym iż jeżeli wysyłam zablokowane checkboxy to nie wysyłają wartości ze sobą. Jeśli zakomentuje wyżej wymienioną linijkę wszystko działa.
Gdzie może tkwić problem ?

Przykład jednego checkboxa:
  1. <input type='checkbox' id=check1 name=poprawna[] value = "<?php echo $wiersz['odp1'] ?>" /> <?php echo $wiersz['odp1'] ?><br/>


A w takiej pętli dokonuje sprawdzenia checkboxów
  1. foreach ($_POST['poprawna'] as $klucz => $wartosc){
  2. ...
  3. }


Takie komunikaty mi się pojawiają jeśli blokowanie checkboxów działa:
  1. Notice: Undefined index: poprawna in C:\xampp\htdocs\testyEgzaminazyjne\wykonajTest.php on line 229
  2.  
  3. Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\testyEgzaminazyjne\wykonajTest.php on line 229

Michasko
Problem tkwi w tym, że pola 'disabled' nie są przesyłane. Masz 2 wyjścia.
1. za każdym razem, gdy ktoś zmieni wartość pola - zmieniasz ją spowrotem, lub
2. usuwasz atrybut 'disabled' w momencie przesyłania formularza.
[JAVASCRIPT] pobierz, plaintext
  1. $('form').submit(function() {
  2. $('input[type="checkbox"]').removeAttr('disabled');
  3. }
[JAVASCRIPT] pobierz, plaintext
mokater
A jak mam zamieśić usuwanie atrybutu disabled, ponieważ wyrzuca mi błąd składniowy.
<script type="text/javascript">
$(function() {
$('.oknoTestu input').ezMark();

});

</script>


Mam na myśli jak wstawić te linie kodu ?
$('form').submit(function() {
$('input[type="checkbox"]').removeAttr('disabled');
}
Michasko
Używaj BBCode.
A odpowiadając na pytanie - jeśli wyrzuca Ci błąd, to powiedz jaki. Kod umieszczasz tak samo, jak ten powyżej (z ezMark() ). Czyli u Ciebie:
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. $(function() {
  3. $('.oknoTestu input').ezMark();
  4.  
  5. $('form').submit(function() { // za 'form' musisz podstawić np. atrybut ID swojego formularza - o ile na stronie jest więcej niż jeden formularz
  6. $('input[type="checkbox"]').removeAttr('disabled');
  7. });
  8. });
  9.  
  10. </script>
[JAVASCRIPT] pobierz, plaintext
mokater
Super, działa !
Dzięki Wielkie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.