javascript - 使用ajax发送$_POST变量到php

标签 javascript php html ajax

我有一个带有 2 个提交按钮的表单:

<form id="drinksForm" action="drinksHandler.php" method="POST"> 
    <label for="drinks">Number of drinks</label> 
    <input type="number" class="form-control" name="drinks" min="1" max="30" required="required">
    <input type="submit" name="buttonDrinks" class="btn btn-success" value="Got drinks">
    <input type="submit" name="buttonDrinks" class="btn btn-danger" value="Didn't get drinks">
</form>

我使用ajax打印即时反馈消息:

$('#drinksForm').submit(function(event){
    event.preventDefault();
    var form = $('#drinksForm');
    $.ajax({
        type : 'POST',
        url : form.attr('action'),
        data : form.serialize(),
    })

    .done(function(data){
        $('#result').html(data);
    })
    .fail(function(data){
        $('#result').html(data);
    })

});

在 DrinkHander.php 中,我想查看按下了哪个按钮。如果我删除

event.preventDefault();

我可以看到

$_POST["buttonDrinks"]

按下了哪个按钮。但由于

event.preventDefault();
    $.ajax({
        type : 'POST',
        url : form.attr('action'),
        data : form.serialize(),
    })

它不会发送按下哪个按钮的信息。那么我如何将一个变量发送到 DrinksHandler.php 以显示按下了哪个按钮。

最佳答案

删除按钮名称属性并在提交之前动态添加输入。 还将提交功能更改为单击按钮,以便 PreventDefault 应该起作用。 像这样的事情

$('body').on('click', '.btnSubmit', function(event){
    event.preventDefault();
    var form = $('#drinksForm');
    form.append('<input type="hidden" name="buttonDrinks" value="'+$(this).val()+'">');
    
    var formData = form.serialize();
    
    console.log(formData);

    $.ajax({
        type : 'POST',
        url : form.attr('action'),
        data : formData,
    })

    .done(function(data){
        $('#result').html(data);
    })
    .fail(function(data){
        $('#result').html(data);
    })

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="drinksForm" action="drinksHandler.php" method="POST"> 
    <label for="drinks">Number of drinks</label> 
    <input type="number" class="form-control" name="drinks" min="1" max="30" required="required">
    <input type="submit" class="btn btn-success btnSubmit" value="Got drinks">
    <input type="submit" class="btn btn-danger btnSubmit" value="Didn't get drinks">
</form>

关于javascript - 使用ajax发送$_POST变量到php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58239812/

相关文章:

javascript - 如何在 JavaScript 中编辑树莓派的 IP 地址?

javascript - JS 获取字符串最后一个点并返回其后面的字符串

php - 注册前我应该如何保存访客的帖子?

php - Codeigniter UPS API 集成 - 交货日期

php - 如何在 select 语句和 where 子句中包含(用户选择的 - 动态)列?

javascript - 加载时调用 onclick ="function(this);"?

html - CSS:在 flex-wrapped 按钮中居中文本

javascript - 将动画插入到形状的 div 中

javascript - NODE.JS 如何使用 node.js 显示位于名为 CSS 的文件夹内的 css 文件,其中我的 server.js 和 index.html 位于该文件夹之外

javascript - IE8 渲染问题