我正在开发一个自动系统来响应帮助请求,我希望能够弄清楚使用它的客户对他们得到的回复感到满意。
程序应该询问他们“你对你的回复感到满意”,其下面有是/否提交按钮,当用户提交它时应将它们转发到指定页面并调用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
}
?>
答案 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>
。