Как исправить данные POST, неправильно установленные из запроса ajax? - PullRequest
0 голосов
/ 26 октября 2018

У меня проблема с получением данных POST со страницы с помощью ajax.В коде JQuery данные работают гладко, и он будет отображаться, когда я оповестить данные.В коде запроса ajax данные из jquery были успешно переданы в файл showpercent.php .Теперь проблема с showpercent.php , данными индекса POST процент_ид неопознана.Как я могу исправить эту проблему при получении значения POST?

Ниже приведен список таблиц с кнопкой, когда данные поступают.

 <table>
    <tr>
      <td>
        <button class="btn btn-info show-percentage" title="Click to add view percentages!" data-percentage_id="'.$row['hidden_id'] .'" data-toggle="show-percentage"><i class="glyphicon glyphicon-time"></i></button>
      </td>
    </tr>
 </table>

Ниже приведен запрос ajax, отправляющий данныев showpercent.php файл.Когда я предупреждаю процент_ид от нажатия кнопки, данные будут отображаться в предупреждении, и ajax был успешно передан в определенный файл php, который showpercent.php .

<script>
$(document).ready(function(){
  $(".show-percentage").click(function(){

    var percentage_id = $(this).data('percentage_id');

    alert("Ajax Landing ID "+landing_id);

    $.ajax({
        url: 'ajax/showpercent.php',
        type: 'POST',
        cache: false,
        data: { percentage_id : percentage_id },

        success: function(data) {
          alert(data);
          $('#add-percentage').modal('show');
          readRecords();
        },
        error: function(request, status, error){
          alert("Error!! "+error);
        }             
    });

    // READ recods when the button is click
    readRecords();
  });

  function readRecords() {
    $.get("ajax/showpercent.php", {}, function (data, status) {
      $(".display_percentage").html(data);
    });
  }
});
</script>

Ниже представлен модал с вкладкой для отображения данных из ajax-запроса.Класс display_percentage будет отображать текущие данные с showpercentage .

<div id="add-percentage" class="modal fade" tabindex="-1" role="dialog">
    <div class="modal-dialog modal-lg">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Fish Landing Percentage</h4>
        </div>

        <div class="modal-body">
          <ul class="nav nav-tabs">
            <li class="active"><a data-toggle="tab" href="#menu1">Add Percentage</a></li>
          </ul>

          <div class="tab-content">
            <div id="menu1" class="tab-pane fade in active">
              <br>
              <div class="display_percentage"></div>
            </div>
          </div>

          <div class="modal-footer">
              <button type="button" id="primary" class="btn btn-primary" onclick="AddPercentage()"> Add Percentage </button>
              <button type="button" id="danger" class="btn btn-danger" data-dismiss="modal">Close</button>
            </div>

        </div>
      </div>
    </div>
  </div>

showpercent.php

Этот файл будетчтение с помощью функции readRecords () для отображения в модальном состоянии с классом вкладок display_percentage при нажатии кнопки.

Эта проблема возникает, когда данныебыл успешно передан из ajax-запроса, данные POST в showpercent.php установлены неправильно и не могут перейти к процессу mysql, поскольку POST не установлен.

<?php
include 'db.php';

$data = '
  <table">
      <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['percentage_id'])){

  $landing_id = $_POST['percentage_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_array($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{
  echo 'Percentage id is not set!';
}
  $data .= '
  </table>';

echo $data;
?>

Но вконсоль AJAX, передавая данные, будет работать гладко.

Я бы хотел, чтобы кто-нибудь помог мне решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Я читаю ваш код, ваш showpercent.php, javascript и html, и так далеко и замечаю это

<button class="btn btn-info show-percentage" title="Click to add view percentages!" data-percentage_id="'.$row['hidden_id'] .'" data-toggle="show-percentage"><i class="glyphicon glyphicon-time"></i></button>

и проверяю это

data-percentage_id="'.$row['hidden_id'] .'" 

вы делаете это неправильно, этоне то, как вы помещаете значение php в значение html, это будет возвращать неопределенное значение в javascript, если вы попытаетесь получить его значение, поэтому

Вот почему

var percentage_id = $(this).data('percentage_id');

возвращает неопределенное значение в javascript и php

Так что замените его на

data-percentage_id="<?php echo $row['hidden_id']; ?>"

Так что замените свою кнопку на вот так

<button class="btn btn-info show-percentage" title="Click to add view percentages!" data-percentage_id="<? echo $row['hidden_id']; ?>" data-toggle="show-percentage"><i class="glyphicon glyphicon-time"></i></button>

благодаря @Keval Mangukiya

0 голосов
/ 26 октября 2018

попробуй: добавь это в свой html

<button id="percentage_id" class="btn btn-info show-percentage" title="Click to add view percentages!" data-percentage_id="<?=$row['hidden_id'] ?>" data-toggle="show-percentage"><i class="glyphicon glyphicon-time"></i></button>

перед тем, как его получить, установи значение своего процентного идентификатора

добавь в свой JavaScript с помощью

$("#percentage_id]").data('percentage_id',loading_id); //setter
var percentage_id = $(this).data('percentage_id'); //getter
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...