Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][JavaScript][PHP]Zmienianie checkboxa w zależności od selecta
Forum PHP.pl > Forum > Przedszkole
michal_s
Skrypt ma działać tak, że jest sobie <select> i gdy ktoś wybierze jakąś opcję informacja o niej idzie do pliku .php , który sprawdza coś w bazie na podstawie przekazanego id z selecta i jeśli znajdzie to id to ma się zaznaczyć automatycznie checkbox a jeśli nie to ma być odznaczony. Wszystko działa poprawnie oprócz zaznaczania i odznaczania.
Chciałem to zrobić dając if w php na takiej zasadzie:

  1. if ($zmienna == 0) {
  2.  
  3. ?>
  4. <script type="text/javascript">
  5.  
  6. jQuery(document).ready(function(){
  7. $('input[name=nazwa]').attr('checked', true);
  8. });
  9.  
  10. </script>
  11.  
  12.  
  13. <?php
  14. }
  15. else {
  16.  
  17. ?>
  18. <script type="text/javascript">
  19.  
  20. jQuery(document).ready(function(){
  21. $('input[name=nazwa]').attr('checked', false);
  22. });
  23.  
  24. </script>
  25. <?php
  26. }


Ale chyba nie jest to najszczęśliwszy pomysł, bo nie działa... Jak powinienem to zrobić poprawnie?
kamil_lk
$(twoj_checkobx).prop('checked',true);
$(twoj_checkobx).prop('checked',false);
michal_s
Jeśli miałem
  1. jQuery(document).ready(function(){
  2. $('input[name=nazwa]').attr('checked', false);
  3. });


Zamienić na

  1. jQuery(document).ready(function(){
  2. $('nazwa').prop('checked',true); //id zamiast nazwa też próbowałęm bo nie wiedziałem co ma być
  3. });


to niestety nie działa

Oczywiście gdybym normalnie dał w pliku

  1. <script type="text/javascript">
  2.  
  3. jQuery(document).ready(function(){
  4. $('input[name=nazwa]').attr('checked', true);
  5. });
  6.  
  7. </script>


To on zaznacza przy ładowaniu checkboxa. Tylko o to chodzi, żeby zmieniał go jeśli ten fragment kodu pojawia się wywołany dopiero potem.

Cały mechanizm wysyłania informacji o wybranym select wygląda tak:

  1. function showUser(str) {
  2. if (str=="") {
  3. document.getElementById("txtHint").innerHTML="";
  4. return;
  5. }
  6. if (window.XMLHttpRequest) {
  7. // code for IE7+, Firefox, Chrome, Opera, Safari
  8. xmlhttp=new XMLHttpRequest();
  9. } else { // code for IE6, IE5
  10. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  11. }
  12. xmlhttp.onreadystatechange=function() {
  13. if (xmlhttp.readyState==4 && xmlhttp.status==200) {
  14. document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
  15. }
  16. }
  17. xmlhttp.open("GET","info.php?q="+str,true);
  18. xmlhttp.send();
  19. }
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.