PHP 表单提交会导致整个文件刷新吗?
Do PHP form submissions cause the whole file to refresh?
使用<form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "post">
是否会在用户点击提交时导致整个页面刷新?或者只是 PHP 部分?
页面通常会在提交表单后重新加载以显示收到的回复。
为了防止这种情况,您有两种方法:
- 在表单标签中使用
target=_blank
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" target="_blank">
- 使用
event.preventDefault();
来阻止表单的默认操作,然后使用 fetch
手动发送数据,或者如果您使用 JQuery,则可以使用 ajax
。 (我将使用获取标准 API)
document.getElementByTagName("form")[0].addEventListener('submit', function(event) {
event.preventDefault();
const url = 'https://randomuser.me/api';
// The data we are going to send in our request
const data = {
name: 'Sara'
}
// The parameters we are gonna pass to the fetch function
const fetchData = {
method: 'POST',
body: data,
headers: new Headers()
}
fetch(url, fetchData)
.then(function() {
// Handle response you get from the server
});
});
使用<form action = "<?php echo $_SERVER['PHP_SELF']; ?>" method = "post">
是否会在用户点击提交时导致整个页面刷新?或者只是 PHP 部分?
页面通常会在提交表单后重新加载以显示收到的回复。
为了防止这种情况,您有两种方法:
- 在表单标签中使用
target=_blank
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" target="_blank">
- 使用
event.preventDefault();
来阻止表单的默认操作,然后使用fetch
手动发送数据,或者如果您使用 JQuery,则可以使用ajax
。 (我将使用获取标准 API)
document.getElementByTagName("form")[0].addEventListener('submit', function(event) {
event.preventDefault();
const url = 'https://randomuser.me/api';
// The data we are going to send in our request
const data = {
name: 'Sara'
}
// The parameters we are gonna pass to the fetch function
const fetchData = {
method: 'POST',
body: data,
headers: new Headers()
}
fetch(url, fetchData)
.then(function() {
// Handle response you get from the server
});
});