最近在学用thinkphp框架写个小项目时,发现这样一个问题:通过模板界面写登录表单form,submit提交之后,跳转到的界面是一片空白,当手动刷新地址栏时,会报出错误。
<!--将表单提交到当前module的insert方法。-->
<form name="RegForm" method="post" action="__URL__/insert" >
<div data-role="fieldcontain">
<label for="username"> 用户名 </label>
<input name="user_name" id="username" value="" type="text" required>
</div>
<div data-role="fieldcontain">
<label for="password"> 密码 </label>
<input name="user_pwd" id="password" placeholder="" value="" type="password" required>
</div>
<div >
<input data-inline="true" type="submit" name="submit" value="提交" />
<a data-inline="true" data-role="button" href="#"> 取消 </a>
</div>
</form>
提交后的页面是一片空白。
当再次手动刷新地址栏时,会显示非法数据对象错误。
解决方法:
在form里面添加data-ajax=”false”
<form name="RegForm" method="post" action="__URL__/insert" data-ajax="false">
下面是个小测试
在模板中写个跳转按钮,调用控制台的方法进行跳转
模板里面的代码
<!-- 调用当前module的mk方法-->
<a style="margin-left:37%;" href="../book/mk" data-role="button" data-icon="home">界面跳转</a>
控制台的代码
public function mk(){
header("Content-type: text/html; charset=utf-8");
echo "<script>alert('跳转成功');</script>";
}
在没有添加data-ajax=”false”时,当点击按钮时,
跳转界面是一片灰白,当再次刷新地址栏时,才会跳出“跳转成功“的提示框。
添加data-ajax=”false”后运行恢复正常。
<a style="margin-left:37%;" href="../book/mk" data-role="button" data-icon="home" data-ajax="false">界面跳转</a>
原因分析:
在w3school中找到关于data-ajax的介绍
data-ajax=”false”表示不通过ajax方式来加载页面。
AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
具体原因本人也不是很懂,希望各位路过的大神能够提点一二,谢谢!