Как правильно установить значение POST из AJAX?

Я хочу передать значение из jquery в php с помощью AJAX, проблема в том, что значение в php неправильно установлено.

Вот мои примеры кодов:

Триггер кнопки для передачи данных в jquery.

<button class = "btn btn-info add-percentage" 
  data-landing_id-percentage = "'.$row['hidden_id'] .'" 
  data-toggle = "add-percentage"><i class = "glyphicon glyphicon-time"></i></button>

Ниже приведен код ajax и jquery.

<script>
$(".add-percentage").click(function(){

    var landing_id = $(this).data('landing_id-percentage');

    $.ajax({
        url: 'ajax/readPercentage.php',
        type: 'POST',
        data: {
            landing_id: landing_id
        },
        success: function(msg) {
            alert('Email Sent'+msg);
            $('#add-percentage').modal('show');
            readRecords();
        }               
    });
  });
<script>

Результатом ниже в PHP-коде является неправильная установка landing_id.

readPercentage.php

<?php
    $data = '
      <table class = "table table-bordered table-hover table-striped" id = "ModalMyTable">
          <thead>
              <tr class = "success">
                <th ><center>No.</center></th>
                <th ><center>Percentage ID</center></th>
                <th ><center>Landing ID</center></th>
                <th><center>Percentage</center></th>
                <th><center>Date Added</center></th>
              </tr>
          </thead>';
    if (isset($_POST['landing_id'])){

      $landing_id = $_POST['landing_id'];

      $query = mysqli_query($conn, "SELECT
                  percentage.percent_id,
                  percentage.landing_id,
                  percentage.percentage,
                  percentage.date_recorded
                  FROM
                  percentage
                  WHERE percentage.landing_id = '$landing_id'");

      $number = 1;
      while($row = mysqli_fetch_assoc($query)) {

        $data .= '
          <tr>
            <td><center>' . $number . '</center></td>
            <td><center>' . $row['percent_id'] . '</center></td>
            <td><center>' . $row['landing_id'] . '</center></td>
            <td><center>' . $row['percentage'] . '%</center></td>
            <td><center>' . date("M. d, Y", strtotime($row['date_recorded'])) . '</center></td>
          </tr>';
        $number++;
      }
    }else{
      $data .='<tr><td colspan = "6">Landing id is not properly set!</td></tr>';
    }
    $data .= '</table>
  <script>
    {
      $(document).ready(function(){
        $("#ModalMyTable").DataTable();
        readRecords();
        });
      }
  </script>
    ';

    echo $data;
?>

Я надеюсь, что кто-нибудь поможет мне в моей проблеме. Заранее спасибо.

Если вы console.info(landing_id) перед вызовом ajax, возвращает ли он значение?

redreddington 21.10.2018 15:11

@redreddington да, он вернет значение.

Unus Instar Omnium 21.10.2018 15:12

А если вы var_dump($_POST) раньше, чем if (isset(, содержит ли это значение?

redreddington 21.10.2018 15:14

Если это в форме, она будет отправлена. К нему можно добавить type = "button"

mplungjan 21.10.2018 15:14

И если вы проверите кнопку, имеет ли она правильное значение в data-landing_id-percentage = "'.$row['hidden_id'] .'"

mplungjan 21.10.2018 15:15

@mplungjan он имеет правильное значение, когда я предупреждаю об этом landing_id, он будет отображать .. и когда я повторяю Landing_id в php, он тоже будет отображаться.

Unus Instar Omnium 21.10.2018 15:18

@redreddington Неопределенный индекс: landing_id.

Unus Instar Omnium 21.10.2018 15:34

@UnusInstarOmnium и который появляется в окне консоли, когда вы выполняете POST, а не когда вы просто посещаете страницу?

redreddington 21.10.2018 15:36

@redreddington не появится, когда я просто нажму кнопку .. не при посещении страницы.

Unus Instar Omnium 21.10.2018 15:44

Я заметил, что при работе с некоторыми библиотеками JS, отправляющими HTTP POST, ваши данные попадают в php://input, а не в массив $_POST. Попробуйте $postData=file_get_contents("php://input");, и если вы получите строку, преобразуйте ее в объект или массив с помощью json_decode

ivanivan 21.10.2018 15:46

@ivanivan я не могу получить строку ..

Unus Instar Omnium 21.10.2018 15:58

@mplungjan индекс сообщения не определен, но данные из ajax были успешно отправлены. Что я буду делать в своем коде, чтобы решить эту проблему.

Unus Instar Omnium 22.10.2018 03:25

Я не замечаю ничего очевидного. Извините

mplungjan 22.10.2018 06:05
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
13
38
0

Другие вопросы по теме