简体   繁体   English

使用javaScript SDK保存要解析的数据

[英]Saving data to parse using javaScript SDK

Using parse.com and JavaScript SDK. 使用parse.com和JavaScript SDK。 - Section one shows a list of objects - Section two lets the user select one of those objects and add to a modal box - Section three saves the data to parse -第一部分显示对象列表-第二部分让用户选择这些对象之一并添加到模式框-第三部分保存要解析的数据

What I'm unable to work out is how I can save the section 1 item.badgename and item.category to parse. 我无法解决的问题是如何保存第1节item.badgename和item.category进行解析。

I've tried adding m yBadge.set("category", badgename.toString()); 我尝试添加m yBadge.set("category", badgename.toString()); to section 3, but I get a undefined error. 到第3节,但出现未定义的错误。 i'm not sure how to define this before trying to save. 我不确定在尝试保存之前如何定义它。

Really need some help and an example to follow. 确实需要一些帮助和示例。

3 -Saves the badge details to parse 3-保存徽章详细信息以进行分析

 var MyBadge = Parse.Object.extend("myBadges");
 var FriendRequest = Parse.Object.extend("FriendRequest");
 var friendRequest = new FriendRequest();
 friendRequest.id = window.selectedFriendRequestId;


 var badgeselected = $('#badgeselect .go').attr("src");

 $(document).ready(function() {

    $("#send").click(function() {

        var myBadge = new MyBadge();
        var badgeselected = $('#badgeselect img').attr("src");
        var BadgeSentTo = $('#selectFriend').val();
        var categorySelected = $('#category').val();

        var uploadercomment = $('#UploaderComment').val();
        myBadge.set("BadgeName", badgeselected); //got this working using .set 
        myBadge.set("Comment", uploadercomment); //got this working using .set 
        myBadge.set("category", categorySelected);
        myBadge.set("SentTo", new Parse.User({
            id: BadgeSentTo
        }));
        myBadge.set("uploadedBy", Parse.User.current());




        myBadge.save(null, {
            success: function(results) {

                console.log("Done");
                //location.reload();
            },
            error: function(contact, error) {
                // The save failed.

                alert("Error: " + error.code + " " + error.message);
            }
        });

        return false;
    });
 });

** 1- Returns results to the page for user to select** ** 1-将结果返回页面供用户选择**

    var GlobalBadges = Parse.Object.extend("Global_Badges");
             var query = new Parse.Query(GlobalBadges);
             query.exists("Global_Badges_img");
             query.find({
                success: function(results) {
                    var friends = [];
                    for (var i = 0; i < results.length; i++) {
                        friends.push({
                            imageURL: results[i].get('Global_Badges_img'),
                            //friendRequestId: results[i].id,
                            badgename: results[i].get('BadgeName'),
                            category: results[i].get('category')
                        });
                    }
                    // TW: replaced dynamic HTML generation with wrapper DIV that contains IMG and name DIV
                    _.each(friends, function(item) {
                        // using a wrapper so the user can click the pic or the name
                        var wrapper = $('<div></div>');
                        wrapper.append('<img class="images BadgeImgOutline responsive-image" src="' + item.imageURL + '" />'+ '<br>');
                        wrapper.append('<div id="name"class="tag badgelabel" >'+ item.badgename + '</div>'+ '<br>');
wrapper.append('<div id="category" class="tag categorylabel" >'+ item.category + '</div>'+ '<br>'+ '<br>'   );





                        $('#container').append(wrapper);
                    });


                },
                error: function(error) {
                    alert("Error: " + error.code + " " + error.message);
                }
            });

2 -Upon the user selecting an object from above, this adds the data to a modalbox 2-当用户从上方选择对象时,这会将数据添加到模式框

 $(document).ready(function() {
    $('.go img').css('cursor', 'pointer');
    $('.go').on('click', 'img', function(e) {
            $('.go img').removeClass('BadgeImgOutline'); 

        $(this).parent().appendTo('#badgeselect');
                   $(this).addClass('BadgeImgOutlineSmall'); 
                   $('.go img').addClass('BadgeImgOutline'); 

        $('#modal').reveal({

            closeonbackgroundclick: true,
            dismissmodalclass: 'close'
        });
        return false;
    });
 });

This was addressed by making the following changes. 通过进行以下更改可以解决此问题。 - Taking the data from #badgeSelect not #category - From section 3, the line var categorySelected = $('#category').val(); -从#badgeSelect中获取数据,而不从#category中获取数据-从第3节中,行var categorySelected = $('#category').val(); was changed to categorySelected = $('#badgeselect .categorylabel').text(); 更改为categorySelected = $('#badgeselect .categorylabel').text();

By taking the data from #badgeSelect it meant that the only data being available was that shown shown in the text box, instead of '#category'that returned all results. 通过从#badgeSelect获取数据,这意味着唯一可用的数据是文本框中显示的数据,而不是返回所有结果的“ #category”。

The it was simply targeting the text correctly with the change to the var categorySelected 它只是通过更改var categorySelected来正确地正确定位文本

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM