Récupérer le résultat d'ajax et le traiter dans une requete sql

Eléphant du PHP | 96 Messages

11 Déc 2016, 19:20

Bonjour,
je fais appel à vos connaissances car je but sur un problème depuis le début de l’après-midi...

J'ai un tableau qui liste des interventions et qui permet d'ouvrir une modal lorsque l'on clique sur une ligne de celui-ci.
Voici le code :
<tr onclick="input" data-toggle="modal" href="#my_modal" data-int-id="<?php echo $affiche['id']; ?>" class="inters">


La modal s'ouvre sans problème avec le code ci-dessous:
$('#my_modal').on('show.bs.modal', function (e) {
var rowid = $(e.relatedTarget).attr('data-int-id');
$.ajax({
type : 'POST',
url : '../inc/reponse.php',
data : 'rowid='+ rowid,
success : function(data) {
//var intId = $(e.relatedTarget).data('intId');
}
});
});


ma page reponse.php reçoit bien la valeur de la variable rowid.
Le problème est que je n'arrive pas à utiliser cette valeur pour executer une requette sql qui me permettra d'afficher dans ma modal le contenu de celle-ci.

Voila si vous pouviez me donner un petit cout de main ça serai vraiment super.
Merci

Mammouth du PHP | 753 Messages

11 Déc 2016, 19:35

c'est le code de inc/reponse.php dont on a besoin si tu ne sais pas executer une requete sql dans ce fichier.

Eléphant du PHP | 96 Messages

11 Déc 2016, 19:44

Merci pour ta réponse :)
voici :
<?php
$id_int = $_POST['rowid'];
echo $id_int;
?>

Avatar de l’utilisateur
Modérateur PHPfrance
Modérateur PHPfrance | 8503 Messages

13 Déc 2016, 14:50

salut,

qu'est ce que tu ne sais pas faire ?

a partir du moment où tu as ton id dans response.php tu peux faire un select * from latable where id=xxx

ensuite il te faut mettre les données dans un tableau et le retourner au format json (c'est le plus simple pour l'utiliser en JS ensuite).
voici la base
<?php
// exemple pour Mysql, a toit de voir comment faire dans la doc
$cnx = mysqli_connect();
$sql = 'select champ1, champ2, champ3, etc from latable where id='.mysqli_real_escape_string($cnx,$_POST['rowid']);
$req = mysqli_query($cnx,$sql);
$data = [];
if($req !== false){
$data = mysqli_fetch_all($req, MYSQLI_ASSOC);
mysqli_free_result($req);
mysqli_close($cnx);
}
echo json_encode($data);


tu peux avantageusement utiliser cela pour envoyer un message d'erreur :)

Perso je préfère la version qui fournit de objet (plus simple à utiliser en js ensuite
<?php
// exemple pour Mysql, a toit de voir comment faire dans la doc
$cnx = mysqli_connect();
$sql = 'select champ1, champ2, champ3, etc from latable where id='.mysqli_real_escape_string($cnx,$_POST['rowid']);
$req = mysqli_query($cnx,$sql);
$data = [];
if($req !== false){
while($d = mysqli_fetch_object($req)){
$data[] = $d;
}
mysqli_free_result($req);
mysqli_close($cnx);
}
echo json_encode($data);


cote js jQuery va te permettre d'exploiter le json de façon simple (voir dans la doc ;) )


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 96 Messages

13 Déc 2016, 20:30

merci moogli pour ta réponse,
je ne pense jamais à utilisé json.
Mon fichier reponse.php me retourne bien la chaine json au format [{"id":"2","id_client":"1","id_inter":"21"}]. Cependant je ne comprend comment j peux renvoyer le résultat dans ma modal.

j'ai essayé de la manière suivante:
<?php
$resultat = var_dump(json_decode($data, true));
echo $resultat["id_inter"];
?>

Mais la variable reste vide.
J'ai vraiment du mal avec le jquery et le javascript :(

Eléphant du PHP | 109 Messages

13 Déc 2016, 22:12

Bonjour,

Tu renvois directement le JSON via ton PHP sans faire le echo $resultat["id_inter"], tu fais plutôt le echo json_encode($data);

Ensuite côté javascript tu récupères tes données en les parsants JSON.parse(data);

Eléphant du PHP | 96 Messages

15 Déc 2016, 19:30

merci je vais essayer ça. :)