Dano007
Dano007

Reputation: 1932

JavaScript/jQuery code block is not updating parse.com class object correctly

I would have expected the following parse.com/javascript code block to save the selected "badeselected" variable to the parse class "myBadges" and automatically create a relationship back to the "_USer" class.

There are no errors being returned in the console log, however neither are there any records being added to the "myBadges" class.

I'm not sure what error I've made here?

    Parse.initialize("XXXXX", "XXXXX");

var badgeselected = $("#go").attr("src") 
var contact = Parse.Object.extend("myBadges");
var contact = Parse.User.current();

$(document).ready(function () {
            $("#send").click(function () {
               contact.set("BadgeName", badgeselected);
                     console.log("done");

                contact.save(null, {
                    success: function (results) {
                        // The object was saved successfully.
                        location.reload();
                    },
                    error: function (contact, error) {
                        // The save failed.
                        // error is a Parse.Error with an error code and description.
                        alert("Error: " + error.code + " " + error.message);
                    }
                });
            });
        });

Upvotes: 0

Views: 240

Answers (1)

Marius Waldal
Marius Waldal

Reputation: 9952

You are declaring contact twice. First as an extension called myBadges, and then as current user (discarding the first). Check the current user object in the data browser. You should find the badges there.

UPDATE

Here is an example from the javascript guide:

var GameScore = Parse.Object.extend("GameScore");
var gameScore = new GameScore();

gameScore.set("score", 1337);
gameScore.set("playerName", "Sean Plott");
gameScore.set("cheatMode", false);

gameScore.save(null, {
  success: function(gameScore) {
    // Execute any logic that should take place after the object is saved.
    alert('New object created with objectId: ' + gameScore.id);
  },
  error: function(gameScore, error) {
    // Execute any logic that should take place if the save fails.
    // error is a Parse.Error with an error code and description.
    alert('Failed to create new object, with error code: ' + error.description);
  }
});

You should be able to use this in your jquery code. See how they first declare GameScore as an extension, and then gameScore as new GameScore(); And THEN they set the values on the object.

More info: https://parse.com/docs/js_guide

Upvotes: 1

Related Questions