我正在开发一个自动系统来响应帮助请求,我希望能够找出使用它的客户对他们得到的响应满意的地方。
程序应该问他们“你对你的反应满意的地方”,下面有“是”/“否”按钮,当用户提交时,它应该把它们转发到指定的页面,并调用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
}
?>发布于 2013-03-31 20:56:39
你没有解释现有的问题,但我想你永远不会得到“不”。
当您在一个表单中发送两个提交按钮时,两个按钮都将被提交。所以把他们分成两半
<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);,看看你是否有任何邮政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来完成它。
发布于 2013-03-31 21:14:11
从表单中删除action属性,以查看这是否有帮助,这是有效的html5,对于html4也更好,以避免出现带有空操作属性的浏览器问题。
此外,确保您测试您的条件-如果(isset($_POST.将括号中的代码替换为简单的消息(例如: echo "form submitted!“)是正确的。
EDIT假设您的sendDebugMessage()函数是javascript函数。在这种情况下,需要将其放入脚本标记-> <script type="text/javascript"></script>中。
https://stackoverflow.com/questions/15734376
复制相似问题