PrimuS
PrimuS

Reputation: 2683

Object handling in Chrome/FF?

I have this code:

$('.gBook').click(function(){
        var values = [];
        var getDiff = $('#totalPrice').attr("data-value");
        var i = 0;
        $('td[data-check="true"]').each(function(){
                var valueToPush = { };
                valueToPush["price"] = $(this).attr("data-price");
                valueToPush["id"] = $(this).attr("data-id");
                valueToPush["diff"] = getDiff;
                values.push(valueToPush);
                i++;
        });

        var arrayToSend = {values};

        $.post( '<?php echo PATH;?>ajax/updateRoom.php',arrayToSend, function(data){
                if(data != "ERROR"){
                    $('#all-content').html(data).css("overflow-y","auto");
                }else{
                    alert("ERROR");
                }
        });
    });

In Chrome, this line gives an error var arrayToSend = {values}; (Uncaught SyntaxError: Unexpected token }) In Firefox everything is fine. I guess it's because of the rather "loose" error handling of FF, but how am I doing it correctly? I tried to initialize the object with var arrayToSend = new Object(); before the $.each, but that gives an empty array after POST.

Where is my mistake?

Upvotes: 0

Views: 33

Answers (1)

Tschallacka
Tschallacka

Reputation: 28722

try this

var arrayToSend = {optionsChosen:values};

Then in php or whatever you use for data handling look for the POST variable optionsChosen.

What you did was try to make an Object with parameter array = nothing

You basically did this in your code. It doesn't take an expert to see whats wrong with this statement.

arrayToSend = new function() {
    this.(new Array(1,2,3)); // This is cringeworthy if you see it like this.
}

In the example I gave it translates to this:

arrayToSend = new function() {
  this.optionsChosen = new Array(1,2,3);
}

Upvotes: 1

Related Questions