Как мне определить отправленную кнопку с помощью ajax и php?

#javascript #php #jquery #html #laravel

#javascript #php #jquery #HTML #laravel

Вопрос:

У меня есть форма на моем интерфейсе, и когда нажимается кнопка отправки, clicked я хочу отправить детали в свой get-emp.php файл without page reload .

Код выглядит следующим образом:

index.html

 <form class="form-emp-details hide" action="">

  <div class="form-group">
    <label for="">First name:</label>
    <input type="text" class="form-control input-emp-firstname" name="input_emp_firstname">
  </div>

  <div class="form-group">
    <label for="">Last name:</label>
    <input type="text" class="form-control input-emp-lastname" name="input_emp_lastname">
  </div>

  <div class="form-group">
    <label></label>
    <button type="submit" class="btn btn-default btn-submit-1" name="submit_emp_details">Save</button>
  </div>

</form>
  

custom.js

   $(".form-emp-details").("submit", function(e) {

    var input_first_name = $(".input-emp-firstname").val();


    $.ajax({
      type: "POST",
      url: "get-emp.php",
      data: {
        input_emp_firstname:input_first_name,     
      },
      success: function(data) {         
        console.log(data)   
      },
      error: function(xhr,status,error) {
        console.log(error);
      }
    });


  });
  

get-emp.php

 if(isset($_POST['submit_emp_details'])) {
  $firstname = $_POST['input_emp_firstname'];
  echo $firstname;
}
  

Я хочу отобразить отправленные данные формы в get-emp.php файле , но кажется, что я не могу обнаружить отправленную кнопку и отобразить данные формы.

Моя цель — захватить все данные формы с помощью одной переменной запроса или идентификатора $_POST['submit_emp_details']

Любая помощь приветствуется. Спасибо

Комментарии:

1. вы не передавали, submit_emp_details чтобы получить ее с помощью $_POST['submit_emp_details']) , поэтому ваш код всегда возвращает empty .. use if(isset($_POST['input_emp_firstname']))

2. @Mohamed-Yousef Моя цель — получить все данные формы с помощью всего лишь одного идентификатора $_POST['identifier'] . У вас есть какие-нибудь идеи, как это сделать?

3. посмотрите @Canon, который вы можете использовать data: $(this).serialize(), Чика говорит в своем ответе .. и на php вам нужно перебирать опубликованные данные print_r($_POST)

Ответ №1:

 $("#MyformId").submit(function(e) {

    e.preventDefault();
    var form = $(this);
    var url = form.attr('action');

    $.ajax({
           type: "POST",
           url: url,
           data: form.serialize(), 
           success: function(data)
           {
              // success..
           }
         });
});
  

Ответ №2:

Вы передаете данные POST firstname и lastname с помощью:

input_emp_firstname

input_emp_lastname


итак, вам нужно изменить файл $_POST['submit_emp_details'] на $_POST['input_emp_firstname'] on get-emp.php для

 <?php
if(isset($_POST['input_emp_firstname'])) {
  $firstname = $_POST['input_emp_firstname'];
  echo $firstname;
}
  

Редактировать 2:

 $.ajax({
  type: "POST",
  url: "get-emp.php",
  cache: false,
  data: {
    submit_emp_details: {
            input_emp_firstname:input_first_name, 
            input_emp_lastname:input_last_name
    }
  },
  success: function(data) {

    console.log(data)

  },
  error: function(xhr,status,error) {
    console.log(error);
  }
});
  

Комментарии:

1. Привет. Есть ли у вас какие-либо идеи, как захватить все данные формы с помощью just $_POST['submit_emp_details'] ?

2. привет @ConanCarroll, пожалуйста, проверьте правку 2