我有一个页面,用户可以编辑他的个人资料。他可以通过单击type = submit按钮确认它,然后保存页面刷新和更改。
我想在页面刷新后用“您的更改已保存”之类的内容提示消息。
我怎么能这样做? :)
答案 0 :(得分:4)
您可以使用Alan Kael Ball
或php中提到的AJAX请求来执行此操作
发现数据成功更新到数据库后(我假设你知道这个porcess)试试这个显示消息
print '<script type="text/javascript">';
print 'window.onload = function(){';
print 'alert("Your changes have been saved")';
print '};';
print '</script>';
答案 1 :(得分:1)
使用 AJAX 将结果返回到HTML元素而不刷新页面。
在您希望显示消息的位置添加<div id="response"></div>
。在<script></script>
</body>.
元素
<div id="response"><!-- you message will appear here --></div>
<form id="form">
<!-- your form here -->
<input type="submit" class="submit" value="Submit">
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
var form = $('#form'); // form (by ID attr)
var submit = $('.submit'); // submit button (by CLASS attr)
var alert = $('#response'); // alert div for show alert message (by ID attr)
// form submit event
form.on('submit', function(e) {
e.preventDefault(); // prevent default form submit
$.ajax({
url: 'process_profile.php', // form action url - this is your script where the $_POST is sent. The response will be whatever you return (eg: echo 'Success!'; )
type: 'POST', // form submit method get/post
dataType: 'html', // request type html/json/xml
data: form.serialize(), // serialize form data
beforeSend: function() {
alert.fadeOut();
submit.html('Processing...'); // change submit button text
},
success: function(data) {
//form.trigger('reset'); // reset form?
submit.html('Submit'); // reset submit button text
},
error: function(e) {
console.log(e)
}
});
});
});
</script>
在您的php页面(此处我称之为process_profile.php
)中,您将处理所有f $_POST
变量,一旦脚本完成,只需echo()
一条消息。这将出现在他的回复<div>
答案 2 :(得分:0)
在你的
<form action="yourscript.php" ......
添加参数
<form action="yourscript.php?msg=1" ........
然后在页面的某个位置刷新
<?php echo ($_GET['msg']==1)?"Your changes are saved!":"";?>
当然这只是一个演示,您应该验证是否实际保存了更改,然后显示确认消息。
答案 3 :(得分:0)
在成功时重定向用户时添加参数,例如index.php?success=1
在你的代码中添加:
if(isset($_GET['success'])) {
"Your changes have been saved";
}
或者您可以使用专用库: https://github.com/plasticbrain/PHP-Flash-Messages
答案 4 :(得分:0)
假设您有一个标准的HTML表单,使用POST发送要保存的数据,最好在提交信息后重定向。这可以防止在某些浏览器中出现警告,提示用户在使用后退按钮或刷新页面时重新提交信息。
这个过程是这样的:
代码是这样的:
<?php
session_start();
$message = '';
//load a message from the session if there is one
//clear the session so the message doesn't appear again.
if ( isset($_SESSION['FLASH']) {
$message = $_SESSION['FLASH'];
unset($_SESSION['FLASH']);
}
if ( isset($_POST['save']) ) {
$email = $_POST['email'];
// code to save or whatever...
$_SESSION['FLASH'] = 'Your email has been saved.';
header('location: /'); //path to your success script
exit;
}
?>
<html>
<head>
<title>Test Page</title>
</head>
<body>
<?php if ( $message != '' ) { ?>
<p class="message"><?php echo $message; ?></p>
<?php } ?>
<form action="" method="post">
<label for="email">Email</label>
<input type="text" name="email" id="email" />
<input type="submit" name="save" value="Save" />
</form>
</body>
</html>
答案 5 :(得分:-1)
您需要在保存配置文件重定向到新页面后在该页面上创建新页面,然后写下脚本
<script type="text/javascript">
$(document).ready(function(){
prompt('Your changes have been saved');
});
</script>
由于
答案 6 :(得分:-2)
<input type='submit' name='submit' value='Save' onClick='alert("Your changes have been saved");'>
请让我知道这对您有何影响!