Erreur de syntaxe non détectée lors de l'analyse de JSON lors de la réponse à l'aide d'une requête AJAX : jeton inattendu '<', "<br />
P粉846294303
P粉846294303 2023-11-01 10:06:57
0
1
714

J'utilise datefrom et dateto pour créer un menu déroulant, puis afficher les dates entre ces dates, mais il n'apparaît pas et je continue de recevoir ce message d'erreur dans la console.

VM652:1 
        
       Uncaught SyntaxError: Unexpected token '<', "<br />
<b>"... is not valid JSON
    at JSON.parse (<anonymous>)
    at Object.success (<anonymous>:18:30)
    at c (jquery-3.6.0.min.js:2:28327)
    at Object.fireWith [as resolveWith] (jquery-3.6.0.min.js:2:29072)
    at l (jquery-3.6.0.min.js:2:79901)
    at XMLHttpRequest.<anonymous> (jquery-3.6.0.min.js:2:82355)

Voici le script :

<script>
  // Add an event liste ner for the form submission
  document.querySelector('#submit-button').addEventLi stener('click', function()  {
    // Prevent the default form submission behavior
    event.preventDefault();

    // Get the selected values of the "fromdate" and "todate" dropdown menus
    var fromDate = $('#fromdate').val();
    var toDate = $('#todate').val();

    // Send the AJAX request to the PHP script
    $.ajax({
      type: "POST",
      url: "functions/search-sales_function.php",
      data: { fromDate: fromDate, toDate: toDate },
      success: function (response) {
        // Parse the JSON response
        var salesData = JSON.parse(response);

        // Loop over the sales data and insert it into the table
        for (var i = 0; i < salesData.length; i++) {
          var date = salesData[i]['date'];
          var sales = salesData[i]['total_sales'];
          $('#sales-table tbody').append(`
            <tr>
              <td>${date}</td>
              <td>${sales}</td>
            </tr>`
            );
        }
      },
    });
  });

</script>

Voici le fichier php :

<?php
    include "db_conn.php";
      // Get the values of the "fromdate" and "todate" dropdown menus
      $fromDate = $_POST['fromdate'];
      $toDate = $_POST['todate'];

      // Check the connection
      if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
      }

      // Write a SELECT statement to get the sales data between the selected dates
      $sql = "SELECT date, SUM(sales) as total_sales FROM sales WHERE date BETWEEN '$fromDate' AND '$toDate' GROUP BY date ORDER BY date ASC";

      // Execute the SELECT statement and fetch the results
      $result = mysqli_query($conn, $sql);

      // Loop over the results and add a row to the table for each date
      while ($row = mysqli_fetch_assoc($result)) {
        $date = $row['date'];
        $sales = $row['total_sales'];
        echo "<tr>
                <td>$date</td>
                <td>$sales</td>
              </tr>";
      }

      // Close the connection
      mysqli_close($conn);
    ?>

Je souhaite afficher les lignes avec les dates entre les dates sélectionnées mais l'erreur continue d'apparaître dans le journal de la console et le tableau ne s'affiche pas

P粉846294303
P粉846294303

répondre à tous(1)
P粉318928159

L'erreur est liée à l'erreur de réponse de votre méthode ajax. Le code envoyé ajax 请求的结果。您应该在 php 文件中使用 echo json_encode($data); .

$data = [];
 while ($row = mysqli_fetch_assoc($result)) {
        $data[] = $row;
        echo json_encode($data);
 }
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!