我在表单中遇到2个输入标记的问题。 我想要实现的是,当选择一个特定输入时,必须生成回声。
我的表格:
$CustDate=$_POST['formYear'] . "-" . $_POST['formMonth'] . "-" . $_POST['formDay'];
$months=$_POST['formMonthsAdded'];
$d="+" . $months . " Months"; //not strtotime time here!
$CustAddedDate=date("Y-m-d", strtotime($d,strtotime($CustDate)));//watch the order of arguments and missing strtotime of the existing date
js:
<form method="post" id="quickpoll">
......
<input class="quickpollsubmit" type="submit" name="quickpollsubmit" value="View">
<input class="quickpollsubmit" type="submit" name="quickpollsubmit" value="Vote">
quickpoll_vote.php:
$(document).on('submit', '#quickpoll', function()
{
var data = $(this).serialize();
$.ajax({
type : 'POST',
url : 'quickpoll_vote.php',
data : data,
success : function(data)
{
$("#quickpoll").fadeOut(500).hide(function()
{
$(".quickpollwrapper").fadeIn(500).show(function()
{
$(".quickpollwrapper").html(data);
});
});
}
});
return false;
});
根本不显示回声,无论我选择查看输入还是投票输入。 只有在我选择查看输入时才会出现回声 我做错了什么?
答案 0 :(得分:1)
您可以使用以下内容查看是否在PHP中选择了一个按钮。但是,在这种情况下,您有两个具有相同名称的HTML表单元素,因此这些元素必须是唯一的,如下所示。
<form method="post" id="quickpoll">
......
<input class="quickpollsubmit" type="submit" name="quickpollView" value="View">
<input class="quickpollsubmit" type="submit" name="quickpollVote" value="Vote">
if($_POST)
{
if(isset($_POST['quickpollView']) {
echo 'you choose View';
} else if(isset($_POST['quickpollVote']) {
echo 'you choose Vote';
}
}
答案 1 :(得分:1)
“序列化方法永远不会从提交按钮返回一个值。它不会返回帖子中的提交按钮。您最好只使用隐藏的表单字段并在按钮上添加点击事件”
要检查此点,请添加:
print_r($_POST);
在quickpoll_vote.php的开头
您将看到参数“quickpollsubmit”没有任何值,无论您点击什么按钮。
这是一种解决这个问题的方法。
$(document).on('click', '.quickpollsubmit', function()
{
$('#quickpollsubmit').val($(this).val());
var data = $("#quickpoll").serialize();
$.ajax({
type : 'POST',
url : 'quickpoll_vote.php',
data : data,
success : function(data)
{
$("#quickpoll").fadeOut(500).hide(function()
{
$(".quickpollwrapper").fadeIn(500).show(function()
{
$(".quickpollwrapper").html(data);
});
});
}
});
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="" name="quickpollsubmit" id="quickpollsubmit" readonly>
<input class="quickpollsubmit" type="submit" value="View">
<input class="quickpollsubmit" type="submit" value="Vote">
我编辑了代码,因此它与你的PHP部分兼容,但这样一些元素的命名非常糟糕,抱歉。
在您的脚本中,使用隐藏的输入而不是文本的输入,此处用于演示。
答案 2 :(得分:-1)
尝试
if ($_POST['quickpollsubmit'] == 'View') {
//action for view
} else if ($_POST['quickpollsubmit'] == 'Vote') {
//action for vore
} else {
//invalid action!
}