拖放事件.dataTransfer.files为空
Drag and Drop event.dataTransfer.files is empty
每次在div中放入图像时,我都会尝试收集数据。我的服务器接收到空数据,甚至一件事都没有。我所需要的只是显示图像名称"绿色玻璃箭头.png"。你可以在"控制台"里看到它我做错了什么?请帮忙!你可以在这里看到的例子
JavaScript
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
console.log(event.dataTransfer.files);
}
最终结果。使用JavaScrip AJAX到PHP将拖放图像数据传输到MySql
已编辑代码
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
var ele = document.getElementById(data);
console.log(document.getElementById(data).name);
ajax_post(ele);
}
// ----AJAX Post to PHP----->
function ajax_post(ele){
// Create our XMLHttpRequest object
var hr = new XMLHttpRequest();
// Create some variables we need to send to our PHP file
var url = "insert.php";
var imgName = ele.name;
var imgId = ele.id;
var vars = "imgName="+imgName+"&imgId="+imgId;
hr.open("POST", url, true);
// Set content type header information for sending url encoded variables in the request
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// Access the onreadystatechange event for the XMLHttpRequest object
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("status").innerHTML = return_data;
}
}
// Send the data to PHP now... and wait for response to update the status div
hr.send(vars); // Actually execute the request
document.getElementById("status").innerHTML = "processing...";
}
</script>
PHP代码"insert.PHP"
<?php
$con = mysqli_connect('localhost','root','your_password');
if(!$con) {
echo 'Not Connected To Server';
}
if(!mysqli_select_db($con, 'your_table')) {
echo 'Database Not Selected';
}
$imgName = $_POST['imgName'];
$imgId = $_POST['imgId'];
$sql = "INSERT INTO schema_name (name,id)
VALUES ('$imgName','$imgId')";
if(!mysqli_query($con,$sql)) {
echo 'Not Inserted';
}
else {
echo 'Inserted';
}
?>
codepen.io/TShah/pen/aNYMaX
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
var ele = document.getElementById(data);
console.log(document.getElementById(data).name);
ajax_post(ele);
}
// ----AJAX Post to PHP----->
function ajax_post(ele){
// Create our XMLHttpRequest object
var hr = new XMLHttpRequest();
// Create some variables we need to send to our PHP file
var url = "insert.php";
var imgName = ele.name;
var imgId = ele.id;
var vars = "imgName="+imgName+"&imgId="+imgId;
hr.open("POST", url, true);
// Set content type header information for sending url encoded variables in the request
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// Access the onreadystatechange event for the XMLHttpRequest object
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("status").innerHTML = return_data;
}
}
// Send the data to PHP now... and wait for response to update the status div
hr.send(vars); // Actually execute the request
document.getElementById("status").innerHTML = "processing...";
}
</script>
希望这能帮助。。。
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 如果localstorage为空,则显示欢迎消息
- 使用 jQuery 检查所有值是否为空或已填充
- 如果值为空,如何设置输入的默认值?jQuery
- 如何检查元素的内容是否为空,如果为空,请在jquery中删除该元素
- 在MVC 4中,对Controller的Ajax调用为空
- Spring Ajax列表返回,但对象为空
- 输入文本框为空时的阻止按钮asp.网络表单
- $_POST变量为空
- 如果数据为空,Ajax加载不会停止
- 边框颜色是't如果输入为空,则更改
- 如何在输入为空时停止发送
- 如果用户没有更改,则表单值为空
- 拖放事件.dataTransfer.files为空
- 当ondrop被激发时,event.dataTransfer.files为空
- Sails.js req.files为空,req.body.image未定义
- ExpressJS - req.files 未定义或为空
- 当尝试用nodejs将文件上传到服务器时,req.files为空
- 什么会导致event. datattransfer .files在IE10中为空?