mardi 7 février 2017

Automatically set checkbox to true based on an integer

Hi I need to convert or use the sent integer value from the checkboxes at the reserve page to the view/print transaction page.

Please see my old question: How to add IDs of a checkbox in angular js

I am able to get the values from the database and display it on the view page the only problem is that the checkboxes are null. There are 5 checkboxes on the reservation page (Laptop, Headset, Projector, Tablet, Speakers) so the possible combinations are 32 that's why i used to send an integer from 0 - 31 to the database because there's only one column for the reserved items.

I have successfully manage (with the help of this community) to post and get values from the database.

Now please help me to convert/use that INT value to automatically set the checkbox value to true if it was checked by the user on the reserve page.

Example:

Laptop = 1; Headset = 2; Projector = 4; Tablet = 8; Speakers = 16

The user checks (reserve page)

✓ Laptop, Headset, ✓ Projector, Tablet, ✓ Speakers

The value on the DB: 21

One the view/print page

I need to use the int value on the DB (which is 21) to automatically check the checkbox ✓ Laptop, Headset, ✓ Projector, Tablet, ✓ Speakers in read-only disabled mode .

So far this is my code in html and controller:

function getReservedRequestsById(reservedRequestId) {

            var key = reservedRequestId;

            return dataservice.getReservedRequests(key).then(function (data) {
                vm.ReservedRequestId = data.data;
                console.log(vm.ReservedRequestId);
                logger.info('ACTIVATED');


                //CheckBox
                if (vm.ReservedRequestId.Items > 15) {
                    $scope.chkItems.forEach(function (Item) {
                    if (Item.id == 16) {
                        Item.value = true;
                    }
                })   
               }

                else if ((16 > vm.ReservedRequestId.Items > 7) || (32 > vm.ReservedRequestId.Items > 23)) {
                    $scope.chkItems.forEach(function (Item) {
                    if (Item.id == 8) {
                        Item.value = true;
                    }
                })   
               }

                else if ((8 > vm.ReservedRequestId.Items > 3) || (16 > vm.ReservedRequestId.Items > 11) || (24 > vm.ReservedRequestId.Items > 19) || (32 > vm.ReservedRequestId.Items > 27)) {
                    $scope.chkItems.forEach(function (Item) {
                    if (Item.id == 4) {
                        Item.value = true;
                    }
                })   
               }

    // AND also for 1 & 2 i did not put it here because i would like to just test if it is working  on the three check boxes. If it is working i'll just add the other two
              
}
<md-input-container class="md-block" flex-gt-sm>
<label class="force-input-label">Items</label>
</br>
<div ng-repeat="chkItem in chkItems">
<md-checkbox name="chkItem.name" ng-model="chkItem.value" readonly>
</div>
</md-input-container>

it is not currently working

Need help and advice

Not good in english as well as in angularjs/web development : )

your help is greatly appreciated!

Aucun commentaire:

Enregistrer un commentaire