Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Sprawdzanie wypełnienia radio boxów
NajpierwSieNaucz
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.06.2014

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


Witam!

Napisałem wyświetlanie pytań do quizu w zależności od naszych przywilejów więc ilość pytań może być różna. Kod wyświetlania pytań:
  1. SELECT pytania.tresc,odpowiedzi.odp_1,odpowiedzi.odp_2,odpowiedzi.odp_3 FROM pytania INNER JOIN odpowiedzi ON pytania.id = odpowiedzi.id_pytania AND pytania.id_kat <= (zmienna z php)


Mogę na stronie wynikowej metodą $_POST sprawdzić czy zaznaczyliśmy jakiegoś radio boxa przy użyciu np !isset, aczkolwiek jezeli ktoś odpowie na połowe pytań ów rozwiązanie się nie przyda. Móglbym zliczać ilośc wierszy wynikowych z sql i sprawdzić czy na stronie wynikowej ta ilość się zgadza, pytanie brzmi: Czy można sprawdzić na stronie wyświetlającej pytania czy wszystkie radio boxy zostały zaznaczone?


Dziękuję pozdrawiam.
Go to the top of the page
+Quote Post
kamilo818
post
Post #2





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


  1. $('input:radio').each(function () {
  2.  
  3. var $this = $(this),
  4.  
  5. if ($(this).prop('checked')) {
  6. console.log('checked');
  7. }else{
  8. console.log('unchecked');
  9. break;
  10. }
  11.  
  12. });
  13.  


Sprawdza po kolei kazdego radio i gdy jest zaznaczony wyswietla 'checkd' a jesli nie jest zaznaczony przerywa funkcję i wyswietla 'unchecked'.

Ten post edytował kamilo818 29.08.2014, 06:19:50
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





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

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


1. Możesz sobie zapisać w polu hidden ile masz pytań i po przesłaniu sprawdzić wy wywalić błąd z powrotem na poprzednią stronę
2. Możesz po przesłaniu wykonać jeszcze raz zapytanie o te pytania do BD które zliczy i porówna j.w.

Dodatkowo w JS sprawdzasz czy dla każdej grupy radio jest zaznaczony jakiś radio, jak nie to alert

@up. To nie zadziała bo wywali się na pierwszym nie zaznaczonym radio,a tu chodzi o zaznaczenie w ramach grupy pytania

Ten post edytował Pyton_000 29.08.2014, 06:30:03
Go to the top of the page
+Quote Post
kamilo818
post
Post #4





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


Cytat(NajpierwSieNaucz @ 28.08.2014, 23:40:03 ) *
pytanie brzmi: Czy można sprawdzić na stronie wyświetlającej pytania czy wszystkie radio boxy zostały zaznaczone?


Czyli jak sie wywali na pierwszym nie zaznaczonym to dobrze. Jeśli jest chociaz jeden nie zaznaczony to znaczy, że wszstkie radio boxy nie zostaly zaznaczone.

Poza tym mozna usunąć break i pojdzie dalej.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #5





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

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


Nie. Przy Twoim rozwiązaniu wywali się już na pierwzej linijce:
  1. <input type="radio" name="pytanie1" value="cos">
  2. <input type="radio" name="pytanie1" value="cos">
  3. <input type="radio" name="pytanie1" value="cos" checked="checked">
  4. <input type="radio" name="pytanie1" value="cos">
  5.  
  6. <input type="radio" name="pytanie2" value="cos1">
  7. <input type="radio" name="pytanie2" value="cos1">
  8. <input type="radio" name="pytanie2" value="cos1" checked="checked">
  9. <input type="radio" name="pytanie2" value="cos1">
  10.  
  11.  
  12. <input type="radio" name="pytanie3" value="cos3">
  13. <input type="radio" name="pytanie3" value="cos3">
  14. <input type="radio" name="pytanie3" value="cos3">
  15. <input type="radio" name="pytanie3" value="cos3">


A ma się wywalić na grupie "pytanie3"
Go to the top of the page
+Quote Post
kamilo818
post
Post #6





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


W takim przypadku oczywiście masz rację.
Ale to wystarczy trochę zmodyfikować funkcję i bedzię ok (IMG:style_emoticons/default/smile.gif)
Np dla każdej grupy oddzielną funkcję po name

  1. $('input[name="pytanie1"]').each(function () {
  2.  
  3. var $this = $(this),
  4.  
  5. if ($(this).prop('checked')) {
  6. console.log('checked');
  7. break;
  8. }else{
  9. console.log('unchecked');
  10. }
  11.  
  12. });


Wszystko zależy od tego jak kod wygląda.
Go to the top of the page
+Quote Post
NajpierwSieNaucz
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.06.2014

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


Chciałem zrobić jak Panowie zaproponowali z tym, że:

  1. function testuj()
  2. {
  3.  
  4. $('input[name="$data[0]"]').each(function () {
  5.  
  6. var $this = $(this),
  7.  
  8. if ($(this).prop('checked')) {
  9. console.log('checked');
  10. break;
  11. }else{
  12. console.log('unchecked');
  13. }
  14.  
  15. });
  16.  
  17. }


Nie będzie działać ze względu na to, że $data[0] jest w pętli:

  1. $result = mysql_query($sql.$priwlages);
  2.  
  3. while ($data = mysql_fetch_row($result)) {
  4.  
  5.  
  6. echo "<b>Pytanie $data[0]:</b><br>
  7. <input type='radio' name='$data[0]' value='$data[1]'>$data[1]<br>
  8. <input type='radio' name='$data[0]' value='$data[2]'>$data[2]<br>
  9. <input type='radio' name='$data[0]' value='$data[3]'>$data[3]<br>";}
  10.  
  11. }else { echo ("<center>WYBIERZ PAN ŻESZ PRZYWILEJE</center></br>");}
  12.  


Jakieś sugestie?
Go to the top of the page
+Quote Post
kamilo818
post
Post #8





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


Nie możesz podać jako name $data[0]. Musi to byc wartość która sie pod nią kryje.
Możesz na poczatku zaczynać wszystkie wartość z $data[] i wpisać je do tabeli. Pózniej w pętli po kolei je wpisywać w wartość name.
Go to the top of the page
+Quote Post
trueblue
post
Post #9





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


$('input[name="data[0]"]')
Go to the top of the page
+Quote Post
NajpierwSieNaucz
post
Post #10





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.06.2014

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


Okej Panowie!

Teraz zliczam sobie ilość zaznaczonych radio boxów w taki sposób:

  1. function showTime() {
  2.  
  3. var inputs = document.getElementById("form").elements;
  4. var count = 0;
  5. for (var i = 0; i < inputs.length; i++) {
  6. if (inputs[i].type == 'radio' && inputs[i].checked) {
  7. count++;
  8. }
  9. }
  10.  
  11.  
  12. alert(count);
  13.  
  14. }


Teraz pytanie jak zliczyć ilość pytań w javaskrypcie? W pętli while mam zmienną aczkolwiek trzeba ją przenieść a php a javascript to inne client-server side operacje.

@
Zapomniałem dodać,że inputs nie zwraca wartości.

Ten post edytował NajpierwSieNaucz 30.08.2014, 18:32:32
Go to the top of the page
+Quote Post
kamilo818
post
Post #11





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


Pokaż kod.

Albo jak masz już ilosc w php to np wpisz ją do ukrytego pola input i pobierz ją tak:

  1. <input type="hidden" class="ilosc" value="13"/>
  2.  
  3. <script>
  4. var ilosc = $('input.ilosc').value();
  5. </script>
  6.  
Go to the top of the page
+Quote Post
Mixer
post
Post #12





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 1.09.2014

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


Tak ci będzie najwygodniej, kolega wyżej ma rację.
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: 10.10.2025 - 01:32