Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将输入保存到解析(Javascript)_Javascript_Jquery_Parse Platform - Fatal编程技术网

将输入保存到解析(Javascript)

将输入保存到解析(Javascript),javascript,jquery,parse-platform,Javascript,Jquery,Parse Platform,当前,当用户选择一个文件时,它会直接上传到Parse中。我现在添加了两个输入文本字段,如个人姓名、地址,只有当用户现在单击选择按钮时,我才希望同时将其记录到解析中。一旦用户选择了文件,它将自动提交 $(文档).ready(函数(){ // *************************************************** //注意:更换以下您自己的钥匙 // *************************************************** 初始化(“i

当前,当用户选择一个文件时,它会直接上传到Parse中。我现在添加了两个输入文本字段,如个人姓名、地址,只有当用户现在单击选择按钮时,我才希望同时将其记录到解析中。一旦用户选择了文件,它将自动提交

$(文档).ready(函数(){
// ***************************************************
//注意:更换以下您自己的钥匙
// ***************************************************
初始化(“id”,“id”);
函数saveDocumentUpload(objParseFile){
var documentUpload=newparse.Object(“扫描”);
documentUpload.set(“名称”,“名称”);
documentUpload.set(“DocumentName”,objParseFile);
documentUpload.save(空{
成功:函数(上载结果){
//执行保存对象后应执行的任何逻辑。
var photo=uploadResult.get(“profileImg”);
$(“#profileImg”)[0].src=photo.url();
},
错误:函数(上载结果,错误){
//执行保存失败时应执行的任何逻辑。
//错误是一个解析。错误包含错误代码和说明。
警报('未能创建新对象,错误代码:'+错误。说明);
}
});
}
$('#documentFileUpload').bind(“change”,函数(e){
var fileUploadControl=$(“#documentFileUpload”)[0];
var file=fileUploadControl.files[0];
var name=file.name;//这不*不*需要是唯一的名称
var parseFile=new Parse.File(名称,文件);
parseFile.save()。然后(
函数(){
saveDocumentUpload(解析文件);
},
函数(错误){
警报(“错误”);
}
);
});
});




您有两次“
文档文件上传”

更改:

<form>
    <input type="file" id="documentFileUpload">
    <br />
    <input type="text" value ="UserID"><br />
    <input type="text" value ="Address"> <br />
    <input type="submit"  id="documentFileUpload" value="submit">

</form>
<form>
    <input type="file" id="documentFileUpload">
    <br />
    <input type="text" value ="UserID"><br />
    <input type="text" value ="Address"> <br />
    <input type="submit"  id="documentFileUploadButton" value="submit">

</form>
然后:

<form>
    <input type="file" id="documentFileUpload">
    <br/>
    <input type="text" value="UserID" id="user_id">
    <br/>
    <input type="text" value="Address" id="address">
    <br/>
    <input type="submit" id="documentFileUploadButton" value="submit">
</form>





问题在于您的提交按钮和文件输入具有相同的id。相应地更改id,并分别为其分配事件。将submit event分配给submit按钮,该按钮最终将调用upload函数。

除了发现并修复的其他问题外,您还试图将
解析.File
视为
解析.Object

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

在您的情况下,这意味着
UserID
Address
列必须在
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);
        }
     });
  }

之所以会出现这种情况,是因为您有两个id为“documentFileUpload”的元素,感谢您的澄清。该id最初仅归属于文件,我删除了文件的id,并仅将其保存在提交中,但在单击提交时不会上载任何文件谢谢您的建议。与文件关联的当前id的问题在于,它不会等到点击提交按钮,文件才会被存储到解析中。只要用户点击文件,它就会被存储在parse中,我正试图找出同时记录这两个文本输入的方法。记录这两个文本输入是什么意思?您是在研究如何从该字段获取值,还是对其执行其他操作?更像是当有人在用户ID中写入bob,并在地址中写入toronto时,该信息以及文件在点击提交按钮时被记录到解析中。请查看更新的答案。这将引导您走向正确的方向。非常感谢您的更新,但似乎有一些问题。1) 我已按指示更改了提交按钮的id,以便仅在单击提交按钮时提交文件,但是,它似乎没有保存,而是给我一条错误消息。2) 当我添加以下行时:var user_id=$('#user_id').val();var address=$('#address').val();parseFile.set('UserId',user\u id);parseFile.set('Address',Address);比什么都没有发生。谢谢你的建议。我分别分配了这两个ID,我的问题是分配了submit事件,该事件将调用upload函数并存储两个文本输入字段。您可以编写回调函数,在回调函数中可以调用upload函数并编写在回调函数中保存文本字段的代码。Callbacks函数帮助为一个事件一个接一个地执行多个函数。大家好,在社区的支持下,我离此更近了一步。问题是它没有用parse响应,比如代码中有一个输入错误somnewhere。为了您的礼貌,我在我的第一篇博文中包含了一个更新的代码。谢谢您的澄清。我将如何调整以下行:


Green Chilli的答案以及更新的按钮和单击处理程序都很好,只需按照我的建议将
set
调用移动到
saveDocumentUpload()
方法,您就应该有一个完整的解决方案。您好,我已经在我的第一篇文章的更新2部分发布了一个更新。似乎缺少一些内容,如果您能仔细查看,我将不胜感激。您仍然有调用
parseFile.set(…)
的行,请从单击处理程序中删除这两行。
  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);
        }
     });
  }