2
<div class = 'buttons'>
 <button type="submit" class="regular" name="save">
        <img src="elephant.png" alt=""/>
        Memory
 </button>
</div>

这是提交按钮的代码

但是,当我尝试使用 php 验证表单时,按钮似乎没有提交

<?php if( isset($_POST['save']) && $_POST['save'])
{
$submit = $_POST['save'];
echo "lol";
}
else
{
echo "lola";

}
4

5 回答 5

2

提交按钮仅适用于表单。尝试将整个内容包装在form标签中,然后重试。

于 2012-05-24T18:29:15.507 回答
1

发布表单时,您的提交按钮没有任何价值可发送。<button>元素不会将其元素的内容作为其提交值发送。您仍然必须向value元素添加属性才能使其具有提交的值。既然你不这样做,它会发送一个空字符串,这会导致你的条件语句失败:

if( isset($_POST['save']) && $_POST['save'])

由于$_POST['save']是空的,第二部分返回 false ,因此它进入你的else块。

于 2012-05-24T18:35:11.917 回答
1

这是您想要的代码:

<form name="myForm" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<div class="buttons">
 <button type="submit" class="regular" name="save" value="Save">
        <img src="elephant.png" alt="Elephant" />
        Memory
 </button>
</div>
</form>
于 2014-12-23T16:03:24.673 回答
0

如前所述,您的代码缺少包装。虽然提交按钮作为按钮可能在没有表单的情况下工作,但捕获 _POST 数据肯定不会。

此外,您的图像按钮解决方案可能会更好,可能是这样的:

<style type="text/css">
    input[type="submit"] {background: url('elephant.png') right no-repeat; padding: 10px; padding-left: 30px; font-size: 14px; font-weight: bold;} /* or call this .regular */
</style>
<?
if ($_POST['save']) { // the trigger
    echo '<h1>Cooking with fire now!</h1>';
}
?>
<form method="POST" action="">
    <div class="buttons">
        <input type="submit" name="save" value="Memory" class="regular" />
    </div>
</form>
  • 注意class = "buttons"带空格的,是不正确的语法!
于 2012-05-24T18:35:29.557 回答
0
  • 您应该在<form method="post" action="path/to/your/php/processing/file"></form>标签中包含您的代码
  • 将您的按钮代码替换为<input type="submit" class="regular" name="save" />
  • 从 if 的条件中删除isset($_POST['save']) &&部分,因为您没有value为按钮设置。
于 2012-05-24T18:35:34.280 回答