Bonjour à tous,
Je me permets de poster car je rencontre des difficultés avec une requete ajax qui tombe dans le fail et ne me renvoipas les données.
pour plus de clarté voici mon site : https://foyer-rural-aussonne.fr/vide-grenier/
voici mon code js:

$('#select').change(function (e) { 
    e.preventDefault();
    let val = $('#select').val();
        $.ajax({
        type: "POST",
        url: "select.php",
        data: {data: val },
        dataType: "JSON"
    })
    .done(function (e){

        console.table(e);
        console.log(e);

        $('.rm').remove();

        for(let element of e){
            $('#elem').append(
                `<tr class="rm">
                    <td>${element["Nom"]}</td>
                    <td>${element["Prenom"]}</td>
                    <td>${element["Telephone"]}</td>
                    <td>${element["Mail"]}</td>
                    <td>${element["m"]}</td>
                    <td>${element["a"]}</td>
                </tr>    
                `
            );
        };
    })
    .fail(function (e) {
        $('.rm').remove();
        $('#elem').append(`<h3 class="rm text-danger">Erreur de connexion...</h3>`);

        console.log(val)
        console.log(e.responseText);
        console.log('erreor');
        console.log(e);
        console.log(e.status);
    })
});

Voici mon code php

<?php

require_once 'Class/connect.php';

$data = intval($_POST['data']);

$rs_liste = Connect::conne()->prepare('SELECT c.Nom,c.Prenom,c.Telephone,c.Email,evg.nombre_metre m,evg.type_achat a FROM `client` c
    INNER JOIN Evenement_vide_grenier evg ON evg.idx_client = c.id_client
    WHERE evg.idx_VideGrenier = :id
    ORDER BY c.Nom DESC');
$rs_liste->execute(['id' => $data]);
$tbl = [];
foreach($rs_liste as $r => $liste){
    $tbl[$r] = [
        'Nom'=>$liste[0],
        'Prenom'=>$liste[1],
        'Telephone'=>$liste[2],
        'Mail'=>$liste[3],
        'm'=>$liste[4],
        'a'=>$liste[5]
    ];
}

echo json_encode($tbl);
?>

Merci d'avance pour votre aide !

2 réponses


Bonjour,

Le problème provient à coup sûr côté serveur :

<?php
$rs_liste = Connect::conne()->prepare('SELECT c.Nom,c.Prenom,c.Telephone,c.Email,evg.nombre_metre m,evg.type_achat a FROM `client` c
    INNER JOIN Evenement_vide_grenier evg ON evg.idx_client = c.id_client
    WHERE evg.idx_VideGrenier = :id
    ORDER BY c.Nom DESC');
?>

à priori, cela échoue pour l'ID n°5, il convient donc de regarder de ce côté.

PS ; j'espère que les informations actuellement en ligne sont factices, car selon le RGPD, il est strictement INTERDIT de diffuser des informations personnelles permettant d'identifier directement ou indirectement une personne.

Check if the select.php script is actually being hit by the request. Opening browser dev tools and watching the Network tab might help confirm whether the request is sent and what the response is.