实现无刷新提交表单,一般使用ajax,需要操作DOM,还有一种方法就是采用iframe提交,比ajax更简单,而且不需要操作DOM。
index.html ,注意target指向的是一个iframe
index.php
echo alert($_POST['cmt'], 'error', 'halt');
function alert($msg, $res = 'success', $url = '', $extra = '')
{
if (is_array($msg)) {
$msg = implode('\n', $msg);
}
// 跳转链接
if ($url == 'halt') {
$jumpStr = '';
} else {
$url = $url ? $url : $this->refer();
$url = $url ? $url : '/';
$jumpStr = $url ? "top.location.href = '{$url}';" : '';
}
$this->js("top.alert('{$msg}'); {$extra} {$jumpStr}");
}
function js($script, $exit = true)
{
echo('');
$exit && exit();
}
需要注意的是: 输出JS的时候,使用top.alert()h或者parent.alert(),为什么要使用parent.alert(),因为iframe嵌套在页面中,页面是iframe的父类,需要通知父类页面弹框,所以必须使用parent.alert()。
这样提交表单的时候,会把表单的数据提交到iframe,然后由iframe的src提交到index.php.页面不会刷新