用Javascript发送POST数据
我正在上传文件,这样用户在选择文件后不需要点击“上传”按钮。它工作得很好,但我还需要发送一个额外的参数,因为我根本不喜欢Javascript,所以我不知道如何发送它用Javascript发送POST数据,javascript,forms,image-uploading,Javascript,Forms,Image Uploading,我正在上传文件,这样用户在选择文件后不需要点击“上传”按钮。它工作得很好,但我还需要发送一个额外的参数,因为我根本不喜欢Javascript,所以我不知道如何发送它 html: <form enctype="multipart/form-data" target="_blank" name="send_img" id="send_img" method="post" action="img_upload.php"> <input type="hidden" id="gr
html:
<form enctype="multipart/form-data" target="_blank" name="send_img" id="send_img" method="post" action="img_upload.php">
<input type="hidden" id="group_id" name="group_id" value="2" />
<input type="file" class="hide" id="uploaded_file" name="uploaded_file" onChange="Handlechange();"/>
<button type="submit" id="btn">Subir fotos!</button>
</form>
<div onclick="HandleBrowseClick();" id="fakeBrowse" >Load a picture</div>
这让我认为问题出在数据发送脚本中,当您单击“提交”时,所有输入字段都将使用HTTP POST提交到服务器 在服务器上,您可以用(java)之类的语言解释请求 在PHP中,这类似于:
$myFile = $_REQUEST['uploaded_file'];
看
编辑:输入标记无效(删除“/”):
编辑2:
添加以下内容(作为测试):
var el=document.getElementById('send_img');
el.addEventListener('submit',函数(){
警报(document.getElementById(“组id”).value);
返回true;
},假);
这两种方法都应该有效。请给我们看看你试过的东西的确切代码。在从隐藏的输入中获取组id
之前,您是否等待了DOMready?因为它正在做它应该做的事情,我想这就是我所需要的。你看到的和我档案里的差不多。也就是说。。。不,我没有等你准备好。我现在就去做!这是正确的,但我需要将变量输入php,以便可以轻松地将其插入数据库。(我正在添加那个细节)我有那个部分。我只需要获取变量组id。感谢您花时间帮助我!!!这将是$myGroupId=$\u请求['group\u id'];但是我没有使用PHP的经验,正如我在上面添加的,问题不在接收文件中,而是在发送文件中,javascript部分在发送文件中。您可以看到参数组\u id未传递。已编辑我的答案。有效的输入标记类似,而不是
Request Payload
------WebKitFormBoundarydOdbB5IQ8RbA8CRR
Content-Disposition: form-data; name="uploaded_file[]"; filename="photo-5.JPG"
Content-Type: image/jpeg
------WebKitFormBoundarydOdbB5IQ8RbA8CRR--
request.getAttribute('uploaded_file');
$myFile = $_REQUEST['uploaded_file'];
<input type="hidden" id="group_id" name="group_id" value="2">
<script type="text/javascript">
var el = document.getElementById('send_img');
el.addEventListener('submit', function(){
alert(document.getElementById("group_id").value);
return true;
}, false);
</script>