使用提交按钮进行PHP满意度调查

时间:2013-03-31 20:50:47

标签: php forms submit

我正在开发一个自动系统来响应帮助请求,我希望能够弄清楚使用它的客户对他们得到的回复感到满意。

程序应该询问他们“你对你的回复感到满意”,其下面有是/否提交按钮,当用户提交它时应将它们转发到指定页面并调用sendDebugMessage函数(向我们发送电子邮件)

这是我努力完成的代码,但它只是重定向到空白页面:

<?php
    if (isset($_POST['Yes'])) {
        ?>
            sendDebugMessage("A user WAS happy with their response!");
            <META http-equiv="refresh" content="0; URL=http://example.com">
        <?php
    } elseif (isset($_POST['No'])) {
        sendDebugMessage("A user was NOT happy with their response!");

        ?>
            <META http-equiv="refresh" content="0; URL=http://example.com">
        <?php
    } else {
        ?>
            Where you happy with this response?
            <form action="" method="post">
                <input type="submit" value="Yes" name="Yes" />
                <input type="submit" value="No" name="No"/>
            </form>
            <br />


        <?php
    }
?>

2 个答案:

答案 0 :(得分:0)

你没有解释现有的问题,但我想你永远不会得到“不”。

当您在一个表单中发送两个提交按钮时,两个都将被提交。 所以将它们拆分为

<form action="" method="post">
  <input type="submit" value="No" name="No"/>
</form>

<form action="" method="post">
  <input type="submit" value="Yes" name="Yes" />
</form>

获得不同的答案。

尝试print_r($_POST);看看你是否得到任何Post vars。

我认为更好的解决方案:

使用GET链接,如

<a href="index.php?answer=yes">yes</a>
<a href="index.php?answer=no">no</a>

并通过$_GET[answer]变量阅读它们。 所以在index.php中你会读到你的vars,如

<?
  if($_GET[answer] == 'yes'){
    //action for yes
  }
  elseif($_GET[answer] == 'no'){
    //action for no
  }
?>

稍微好一点的工作方法是通过javascript来完成。

答案 1 :(得分:0)

从表单中删除action属性以查看是否有帮助,这是有效的html5,还有更好的html4,以避免浏览器出现空操作属性。

另外,请确保测试您的条件 - 如果(isset($ _ POST ...是真的,通过用简单的消息替换括号内的代码,即:echo“表单提交!”。

编辑我假设你的sendDebugMessage()函数是一个javascript函数。在这种情况下,您需要将其放在脚本标记内 - &gt; <script type="text/javascript"></script>