0

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

程序应该通过下方是/否提交按钮询问他们“您对您的回复感到满意的地方”,当用户提交时,它应该将它们转发到指定页面并调用 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
    }
?>
4

2 回答 2

0

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

此外,请确保您测试您的条件 - if(isset($_POST... 是否为真,方法是用简单的消息替换括号内的代码,即:回显“表单已提交!”。

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

于 2013-03-31T21:14:11.590 回答
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 你会读到你的变量

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

更好的工作方法是通过 javascript 来完成。

于 2013-03-31T20:56:39.117 回答