Почему данные с моих кнопок формы не попадают на мой сервер PHP? - PullRequest
0 голосов
/ 08 февраля 2019

Я отправляю данные формы на сервер, используя ajax, я получаю все данные на стороне сервера в массиве $ _POST, кроме данных от кнопок отправки.

HTML

<form id="mainForm" action="#" class="form-inline" enctype="multipart/form- 
data">
...
    <div id="success"></div>
    <button type="submit" id="makegocard" name="makegocard" value="clicked" 
    form="mainForm" class="btn btn-primary">Make My WebGoCard</button>

    <div id="preview"></div>
    <button type="submit" id="previewgocard" name="previewgocard" 
    form="mainForm" class="btn btn-primary">Preview My WebGoCard</button>
</form>

javascript JQuery AJAX:

$("#mainForm input,#mainForm textarea,#mainForm 
 button").jqBootstrapValidation({
    //preventSubmit: true,
    submitError: function($form, event, errors) {},
    submitSuccess: function($form, event) {
        //$("#btnSubmit").attr("disabled", true);
        event.preventDefault();

        var mainFormData = new FormData(event.target);

        $.ajax({
            url: "./addUserToDB.php",
            type: "POST",
            data: mainFormData,
            cache: false,
            contentType: false,
            processData: false,
            success: function(pResp) {
                $("#btnSubmit").attr("disabled", false);
                $('#success').html("<div class='alert alert-success'>");
                $('#success > .alert-success').html("<button type='button' 
                class='close' data-dismiss='alert' aria- 
                hidden='true'>&times;").append("</button>");
                $('#success > .alert-success').append(pResp);
                $('#success > .alert-success').append('</div>');
                //$('#mainForm').trigger("reset");
            },
            error: function(pError) {
                $('#success').html("<div class='alert alert-danger'>");
                $('#success > .alert-danger').html("<button type='button' 
                class='close' data-dismiss='alert' aria- 
                hidden='true'>&times;").append("</button>");
                $('#success > .alert-danger').append(pError);
                $('#success > .alert-danger').append('</div>');
                //$('#mainForm').trigger("reset");
            },
        })
    },
    filter: function() {
        return $(this).is(":visible");
    },
});

PHP:

echo print_r($_POST);
if(isset($_POST['makegocard'])){
...
}

Эхо показывает все, кроме данных кнопки иесли статут всегда возвращает false?

Любая помощь будет признательна.

1 Ответ

0 голосов
/ 08 февраля 2019

В принципе, дубликат FormData не содержит значения кнопок

Но так как у вас есть проверка, вам нужно сделать

var whichBut = {}; 
$("button[form=mainForm]").on("click",function() { 
  whichBut.name=this.name; 
  whichBut.value=this.value; 
}); 

, а затем позже

var mainFormData = new FormData(event.target); 
mainFormData.set(whichBut.name,whichBut.value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...