我刚刚发现(困难的方法),当你有一个HTML表单时action="",Webkit浏览器会以不同的方式对待Firefox和Internet Explorer.
在FF和IE中,这两个表单标签是等效的:
<form method="post" action="">
<form method="post">
Run Code Online (Sandbox Code Playgroud)
他们都会将表格提交回同一页面.然而,Safari和Chrome会将第一个表单发送到默认页面(index.php或其他) - 第二个表单与FF/IE的工作方式相同.
我很快就破解了我的代码,以便在通常打印空操作的任何地方,它根本不添加动作属性.
这看起来非常混乱,而不是做事的最佳方式.有谁能建议更好的方法?另外,任何人都可以告诉我为什么Webkit会做这样的事情?
我跟随php mysql新手到忍者:
下面的表单模板
<form action="?" method="post">
<div>
<label for="joketext">Type your joke here:</label>
<textarea id="joketext" name="joketext" rows="3" cols="40"></textarea>
</div>
<div><input type="submit" value="Add"></div>
</form>
Run Code Online (Sandbox Code Playgroud)
PHP控制器的一部分:
if(isset($_POST['joketext'])) //insert block
{
try
{ //prepared starement
$sql = 'INSERT INTO joke SET
joketext = :joketext,
jokedate = CURDATE()';
Run Code Online (Sandbox Code Playgroud)
什么是'?' 做形式动作
我在我的代码中使用方法帖子看到了这一点,但无法弄清楚它到底做了什么。
<form action="." method="POST" class="form-vertical">
Run Code Online (Sandbox Code Playgroud)