我正在关注ninja的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>
PHP控制器的一部分:
if(isset($_POST['joketext'])) //insert block
{
try
{ //prepared starement
$sql = 'INSERT INTO joke SET
joketext = :joketext,
jokedate = CURDATE()';
'?'是什么?做表单动作
答案 0 :(得分:17)
?
用于将URL路径与查询字符串分开。在这种情况下,查询字符串为空,因此它与action=""
一样。
但是,有区别。如果使用具有查询字符串的URL加载原始页面,action=""
将使用相同的查询字符串提交表单。在URL中放置显式?
会将原始查询字符串替换为此空字符串。
答案 1 :(得分:2)
它使用当前URL和空查询字符串作为表单的操作。空查询字符串,表示根本没有查询字符串。
答案 2 :(得分:1)
这样表单会将数据发布到某个位置“?”,如果你的文件包含PHP代码,则不需要任何action="?"
你可以将其删除,表单将自行发布并替换使用isset($_POST["joketext"])
isset($_POST["submit"])
来检测已点击的提交按钮而不是存在的笑话文字
就像这样 HTML:
<form 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" name="submit" value="Add"></div>
PHP:
if(isset($_POST['submit'])) //insert block
{
try
{ //prepared starement
$sql = 'INSERT INTO joke SET
joketext = :joketext,
jokedate = CURDATE()';