jQuery .change() with ajax requires refresh for comboboxes -


so code have seems correct; however, comboboxes change after refresh page; not anticipated $.change().

prior current code had 2 separate ajax calls. 1 clear checkboxes, , other set them. worked without page refresh; however, check incorrect boxes (or not check correct ones).

i've checked returns php through firebug , results anticipated.

the code jquery v1.5.1 because i'm using jquery ui.

thanks in advance!

php

<?php  require 'config.php';  if(!empty($_get['usr'])) {      //retrieve committee banks list     $db->query('select * clas_gov_app_meeting_access_list usr="committeebank"');     $committeebank = $db->get();      //retrieve selected users permissions     $db->query('select * clas_gov_app_meeting_access_list usr="'. $_get['usr'].'"');     $accesslist = $db->get();      //echo user permissions     echo $accesslist[0]['isadmin'];      //combine committebank's , users permissions sepereated slash     $accesslist[0]['accessto'] = $committeebank[0]['accessto'] .',/,' . $accesslist[0]['accessto'];     //explode on commas     $accesslist = explode(',',$accesslist[0]['accessto']);      //echo each value     foreach($accesslist $key => $value) {         echo $value.' ';     } } 

?>

javascript / jquery

    <script type="text/javascript">     function setcheckboxes() {            var usr = $('#kuoid2').find('option:selected').val();         $.ajax({             url : 'ajaxloadaccess.php?usr=' + usr,             datatype : "text",             success : function(response) {                         //first char echoed single identifier admin status                 var isadmin = response.charat(1);                 //clear string                 response = response.replace(response.charat(1), '');                   //committebank first, , seperated usr slash                 split_response = response.split("/");                 //want clear checkboxes committebank , set usr                 clearcheckboxes = split_response[0].split(" ");                 setcheckboxes = split_response[1].split(" ");                  //clear checkboxes                  //for each value in array                 for(var in clearcheckboxes) {                     //skipping on empty checkboxes                     if(clearcheckboxes[i] != '') {                                                       //check boxes need                         if($('input[name='+clearcheckboxes[i]+'2]').attr('checked')) {                             $('input[name='+clearcheckboxes[i]+'2]').attr('checked', false);                         }                     }                 }                  clearcheckboxes = [];                  //set checkboxes                  //for each value in array                 for(var in setcheckboxes) {                     //skipping on empty checkboxes                     if(setcheckboxes[i] != '') {                                                         //check boxes need                         $('input[name='+setcheckboxes[i]+'2]').attr('checked', true);                     }                 }                  setcheckboxes = [];                  if(isadmin>0) {                     $('input[name=isadmin2]').attr('checked', true);                 } else {                     $('input[name=isadmin2]').attr('checked', false);                    }              }         });     }  $(document).ready(function() {     $(function() {         $( "#tabs" ).tabs();     });       setcheckboxes();       $("select").change(function() {         setcheckboxes();     }); }); </script> 

the highlighted lines culprits in code. using setcheckboxes variable in same function , not using var declare it. please use below code hope works you.

<script type="text/javascript">     function setcheckboxes() {            var usr = $('#kuoid2').find('option:selected').val();         $.ajax({             url : 'ajaxloadaccess.php?usr=' + usr,             datatype : "text",             success : function(response) {                         //first char echoed single identifier admin status                 var isadmin = response.charat(1);                 //clear string                 response = response.replace(response.charat(1), '');                   //committebank first, , seperated usr slash                 split_response = response.split("/");                 //want clear checkboxes committebank , set usr                 **var clearcheckboxes = split_response[0].split(" ");                 var setcheckboxes = split_response[1].split(" ");//you should use var declare js variables otherwise in global scope.**                  //clear checkboxes                  //for each value in array                 for(var in clearcheckboxes) {                     //skipping on empty checkboxes                     if(clearcheckboxes[i] != '') {                                                       //check boxes need                         if($('input[name='+clearcheckboxes[i]+'2]').attr('checked')) {                             $('input[name='+clearcheckboxes[i]+'2]').attr('checked', false);                         }                     }                 }                  clearcheckboxes = [];                  //set checkboxes                  //for each value in array                 for(var in setcheckboxes) {                     //skipping on empty checkboxes                     if(setcheckboxes[i] != '') {                                                         //check boxes need                         $('input[name='+setcheckboxes[i]+'2]').attr('checked', true);                     }                 }                  setcheckboxes = [];                  if(isadmin>0) {                     $('input[name=isadmin2]').attr('checked', true);                 } else {                     $('input[name=isadmin2]').attr('checked', false);                    }              }         });     }  $(document).ready(function() {     $(function() {         $( "#tabs" ).tabs();     });       setcheckboxes();       $("select").change(function() {         setcheckboxes();     }); }); </script> 

Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -