【问题标题】:how to distinguish 2 submits from each other in php with $_POST [duplicate]如何使用 $_POST 在 php 中区分 2 个提交 [重复]
【发布时间】:2016-12-09 20:11:10
【问题描述】:

我有一个表单,其中有 2 个输入,如下所示:

<input class="view" type="submit" name="viewonly" value="View">
<input class="submit" type="submit" name="vote" value="Vote">

我想实现这个:

if(hit on input with name 'viewonly') {
echo 'you choose viewonly';
}
elseif(hit on input with name 'vote') {
echo 'you choose vote';
}

我该怎么做?

更新: 我的表格:

<form method="post" id="quickpoll">
.........
<input class="view" type="submit" name="quickpollsubmit" value="View">
<input class="quickpollsubmit" type="submit" name="quickpollsubmit" value="Vote">
   </form>

ajax 调用:

$(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;
});

quickpoll_vote.php

if($_POST)
{

    if($_POST['quickpollsubmit'] == 'Vote') {
    echo 'you did vote and not view only';
    }

没有出现回声,所以我认为问题出在 AJAX 调用中?

【问题讨论】:

  • 如果两个按钮具有相同的名称,则$_POST['btnName'] 将具有被单击的任何一个的值。我也相信只有被点击的按钮才会出现在$_POST 数据中,如果它们有不同的名称的话。自从我处理这个问题以来已经有一段时间了。
  • 在条件下使用isset()
  • 库恩是对的。给它们起相同的名称并检查不同的值。
  • 我尝试了相同的名称和不同的值,但没有结果;问题出在 AJAX 调用中?上面的帖子更新了
  • @JackMaessen 在您发布完整/真实代码之前,我在下面发布了一些内容。如果这是一个 jquery 问题,那么我不是这个人。我主要在服务器端工作。如果我在下面发布的内容不是您想要的,请告诉我,以便我删除它并避免可能的反对意见。

标签: php jquery ajax forms


【解决方案1】:

也许你可以像这样改变你的代码:

<input class="view myclass" type="button" name="viewonly" value="View">
<input class="submit myclass" type="button" name="vote" value="Vote">
<script language="javascript">
     $('.myclass').click(function() {
         clickbuttonname = $(this).attr('name');
         var data = $(this).serialize()+'&clickbuttonname='+clickbuttonname;
         .....
     })
</script>     

【讨论】:

    猜你喜欢
    • 2016-08-28
    • 1970-01-01
    • 2012-08-09
    • 2022-01-18
    • 2017-12-29
    • 1970-01-01
    • 2015-09-20
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多