cleaning up and upgrading code by using loop for data to be .$post
hi all ,
I have a shopping cart with items , quantities and sizes and i am using jquery to post these values to a php page, as i did it i can only handle 4 items in my shopping cart at once, i can add more, by adding to the code the way i am doing it, but i am looking for a better way to do this, that will not have me hard encode it everytime i want to upgrade the number of items allowed (something like a loop with variables )
here is what i have :
- <script language="javascript">
- function add_to_cart() {
- if ($number_of_items == 1){ //$number of items is a global var that
- //checks how many items in cart
- post_data2 = {
- 'quanchg1' : $("#quansel1").val() ,
- 'itemid1' : $('input[name=itemid1]').val(),
- 'sizechg1' : $("#size1").val() ,
- }; // end post_data
- }; // end if
-
- if ($number_of_items == 2){
- post_data2 = {
- 'quanchg1' : $("#quansel1").val() ,
- 'itemid1' : $('input[name=itemid1]').val(),
- 'sizechg1' : $("#size1").val() ,
- 'quanchg2' : $("#quansel2").val() ,
- 'itemid2' : $('input[name=itemid2]').val(),
- 'sizechg2' : $("#size2").val() ,
- }; // end post_data
- }; // end if
-
- if ($number_of_items ==3 ){
- post_data2 = {
- 'quanchg1' : $("#quansel1").val() ,
- 'itemid1' : $('input[name=itemid1]').val(),
- 'sizechg1' : $("#size1").val() ,
- 'quanchg2' : $("#quansel2").val() ,
- 'itemid2' : $('input[name=itemid2]').val(),
- 'sizechg2' : $("#size2").val() ,
- 'quanchg3' : $("#quansel3").val() ,
- 'itemid3' : $('input[name=itemid3]').val(),
- 'sizechg3' : $("#size3").val() ,
- }; // end post_data
- }; // end if
-
- if ($number_of_items ==4){
- post_data2 = {
- 'quanchg1' : $("#quansel1").val() ,
- 'itemid1' : $('input[name=itemid1]').val(),
- 'sizechg1' : $("#size1").val() ,
- 'quanchg2' : $("#quansel2").val() ,
- 'itemid2' : $('input[name=itemid2]').val(),
- 'sizechg2' : $("#size2").val() ,
- 'quanchg3' : $("#quansel3").val() ,
- 'itemid3' : $('input[name=itemid3]').val(),
- 'sizechg3' : $("#size3").val() ,
- 'quanchg4' : $("#quansel4").val() ,
- 'itemid4' : $('input[name=itemid4]').val(),
- 'sizechg4' : $("#size4").val() ,
- }; // end post_data
- }; // end if
- $.post('update_cart.php', post_data2, function(data){
- $("#lcart<?php echo $divid ?>").html(data);
- });
- }
i was thinking of something like this (i know it doesnt work this way)
- var $x ,
- $x = 0,
- while ($x < $number_of_items)
- $x = $x+1;
- post_data2 = {
- 'quanchg'+$x : $("#quansel"+$x).val() ,
- 'itemid'+$x : $('input[name=itemid'+$x+']').val(),
- 'sizechg'+$x : $("#size"+$x).val() ,
- }; // end post_data
- } //end while