将输入保存到Parse(Javascript)

目前,当用户选择文件时,它会直接上传到Parse。 我现在已经添加了几个输入文本字段,例如个人姓名,我想要同时记录到Parse中的地址,只有当用户点击了当前用户选择文件后自动提交的选择按钮时。

$(document).ready(function() { // *************************************************** // NOTE: Replace the following your own keys // *************************************************** Parse.initialize("id", "id"); function saveDocumentUpload(objParseFile) { var documentUpload = new Parse.Object("Scan"); documentUpload.set("Name", ""); documentUpload.set("DocumentName", objParseFile); documentUpload.save(null, { success: function(uploadResult) { // Execute any logic that should take place after the object is saved. var photo = uploadResult.get("profileImg"); $("#profileImg")[0].src = photo.url(); }, error: function(uploadResult, 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); } }); } $('#documentFileUpload').bind("change", function(e) { var fileUploadControl = $("#documentFileUpload")[0]; var file = fileUploadControl.files[0]; var name = file.name; //This does *NOT* need to be a unique name var parseFile = new Parse.File(name, file); parseFile.save().then( function() { saveDocumentUpload(parseFile); }, function(error) { alert("error"); } ); }); }); 
   



更新2:

       $(document).ready(function() { // *************************************************** // NOTE: Replace the following your own keys // *************************************************** Parse.initialize("id", "id"); function saveDocumentUpload(objParseFile) { var documentUpload = new Parse.Object("Scan"); documentUpload.set("Name", ""); documentUpload.set("DocumentName", objParseFile); documentUpload.save(null, { success: function(uploadResult) { // Execute any logic that should take place after the object is saved. }, error: function(uploadResult, 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); } }); } $('#documentFileUploadButton').bind("click", function (e) { var fileUploadControl = $("#documentFileUpload")[0]; var file = fileUploadControl.files[0]; var name = file.name; //This does *NOT* need to be a unique name var parseFile = new Parse.File(name, file); var user_id = $('#user_id').val(); var address = $('#address').val(); parseFile.set('UserId', user_id); parseFile.set('Address', address); parseFile.save().then( function () { saveDocumentUpload(parseFile); }, function (error) { alert("error"); } ); }); });  



**Updated 2:** $(document).ready(function() { // *************************************************** // NOTE: Replace the following your own keys // *************************************************** Parse.initialize("pWG7YizRnwxRjplGT9RSLoHtFItDtvmc2EK0YJAe", "C2qlan3y2PXi6nwVbACGT6fY3CTus8oVEvNo889u"); function saveDocumentUpload(objParseFile) { var documentUpload = new Parse.Object("Scan"); documentUpload.set("Name", ""); documentUpload.set("DocumentName", objParseFile); var user_id = $('#user_id').val(); var address = $('#address').val(); // create a pointer by assigning just an ID var user = new Parse.User(); user.id = user_id; documentUpload.set('User', user); documentUpload.set('Address', address); documentUpload.save(null, { success: function(uploadResult) { // Execute any logic that should take place after the object is saved. }, error: function(uploadResult, 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); } }); } $('#documentFileUploadButton').bind("click", function (e) { var fileUploadControl = $("#documentFileUpload")[0]; var file = fileUploadControl.files[0]; var name = file.name; //This does *NOT* need to be a unique name var parseFile = new Parse.File(name, file); var user_id = $('#user_id').val(); var address = $('#address').val(); parseFile.set('UserId', user_id); parseFile.set('Address', address); parseFile.save().then( function () { saveDocumentUpload(parseFile); }, function (error) { alert("error"); } ); }); });



你有两次“ documentFileUpload ”:

更改:

 



至:

 



编辑

要回答有关记录UserId和Address字段的注释,请参阅以下代码。 我将文件上传绑定更改为按钮并绑定了click事件。 这将修复您在选择时上传的文件。

另外,添加了id的user_id和地址,以允许jQuery从这些字段中获取值:

 $('#documentFileUploadButton').bind("click", function (e) { var fileUploadControl = $("#documentFileUpload")[0]; var file = fileUploadControl.files[0]; var name = file.name; //This does *NOT* need to be a unique name var parseFile = new Parse.File(name, file); var user_id = $('#user_id').val(); var address = $('#address').val(); parseFile.set('UserId', user_id); parseFile.set('Address', address); parseFile.save().then( function () { saveDocumentUpload(parseFile); }, function (error) { alert("error"); } ); }); 

然后:

 



问题是您的提交按钮,文件输入具有相同的ID。 相应地更改ID并分别为它们分配事件。 将提交事件分配给提交按钮,该按钮最终调用上传function。

除了发现和修复的其他问题之外,您还尝试将Parse.File Parse.Object

你不能在Parse.File上调用set(column, value) ,因为它只是一个文件。 保存文件后,将其作为列添加到对象中。

在您的情况下,这意味着UserIDAddress列必须在您的Scan类上。 此外,我建议您将UserID列更改为指针并将其命名为User因为它将使查询更容易,例如:

  function saveDocumentUpload(objParseFile) { var documentUpload = new Parse.Object("Scan"); documentUpload.set("Name", ""); documentUpload.set("DocumentName", objParseFile); var user_id = $('#user_id').val(); var address = $('#address').val(); // create a pointer by assigning just an ID var user = new Parse.User(); user.id = user_id; documentUpload.set('User', user); documentUpload.set('Address', address); documentUpload.save(null, { success: function(uploadResult) { // Execute any logic that should take place after the object is saved. }, error: function(uploadResult, 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); } }); }