我是javascript的初学者,正在css和html的帮助下创建一个联系我们表单。我创建了一个函数来将变量(姓名、电子邮件、反馈(推送到数据库,但不起作用。如有任何帮助,我们将不胜感激。
这是HTML:中的按钮
<div class="submit">
<button class="button" type="submit" onclick="submit()">Submit</button>
</div>
这个函数是JavaScript:
function submit() {
var firstName = document.getElementById('firstName');
var lastName = document.getElementById('lastName');
var emailAddress = document.getElementById('emailAddress');
var feedback = document.getElementById('feedback');
let ref = firebase.database().ref("feedback");
ref.push({
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
});
console.log("Feedback sent")
}
我可以看到";反馈发送";在控制台中。
编辑:我也尝试过这个代码,但它也不起作用:(
function submit() {
var firstName = document.getElementById('firstName');
var lastName = document.getElementById('lastName');
var emailAddress = document.getElementById('emailAddress');
var feedback = document.getElementById('feedback');
const database = firebase.database();
const ref = database.ref('feedback');
var data = {
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
}
ref.push(data);
};
试试这个,
let ref = firebase.database().ref("feedback");
var newPostRef = ref.push();
newPostRef.set({
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
}));
Feedback sent
日志并不能仅仅因为push((操作在代码的后面列出就保证它成功。异步操作(任何进入服务器或等待UI事件的操作(可能会在稍后完成。
这样的东西会给你更好的起点:
async function submit() {
const firstName = document.getElementById('firstName');
const lastName = document.getElementById('lastName');
const emailAddress = document.getElementById('emailAddress');
const feedback = document.getElementById('feedback');
const data = {
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
};
let ref = firebase.database().ref("feedback");
try {
const res = await ref.push(data);
console.log("Feedback sent")
} catch(e) {
console.error(e);
}
}
或者承诺,如果这些更熟悉的话:
function submit() {
const firstName = document.getElementById('firstName');
const lastName = document.getElementById('lastName');
const emailAddress = document.getElementById('emailAddress');
const feedback = document.getElementById('feedback');
const data = {
FirstName: firstName,
LastName: lastName,
Email: emailAddress,
Feedback: feedback
};
let ref = firebase.database().ref("feedback");
return ref.push(data)
.then(() => console.log("Feedback sent"))
.catch(e => console.error(e));
}