javascript - Php - Ajax : Display a specific row information from a while loop by clicking on a link -
i'm working on project user connected , can see list of own delivery order. delivery list diplayed using while loop. when clicking on details button of item in list, need display details of item loop using id (basically content of row id). time got an empty details... , don't understand because works hardocded ids in ajax request
here index.php files
<?php include('config.php'); // if connection db ok,continue // prepare request join table users , delivrey based on user id $reqdelivery = $bdd->prepare("select users.id, livraisons.id, livraisons.user_id, livraisons.delivery_date, livraisons.recipient_address, livraisons.recipient_name livraisons inner join users on users.id = user_id users.id = ? order delivery_date"); $reqdelivery->execute(array($_session['id'])); while ($donnees = $reqdelivery->fetch()) { ?> // add data every field of page <tr class="delivery_board_menu_data"> <td class="delivery_board_menu_data_date"><?php echo $donnees['delivery_date']; ?></td> <td class="delivery_board_menu_data_recipient"><?php echo $donnees['recipient_name']; ?></td> <td class="delivery_board_menu_data_address"><?php echo $donnees['recipient_address']; ?></td> <td class="delivery_board_menu_data_type">express</td> <td class="delivery_board_menu_data_price">1</td> // more button display box option using jquery <td class="delivery_board_menu_data_more"><a href="#" class="data_more_informations">more</a></td> <!-- div box option content --> <td class="div_data_more_informations"> <ul> //detail button display details page <li><a href="details.php?id=<?php echo $donnees['id']; ?>" class="div_data_more_informations_details">détails</a></li> <li><a href="#" class="div_data_more_informations_cancel">annuler</a></li> </ul> </td> <!-- end div avec contenu de la box option --> </tr> <?php } // finish request when all table has been check $reqdelivery->closecursor(); ?> <!-- start slide menu details/livraison --> // include details.php sheet <div id="container-details"> <?php include ('details.php') ;?> </div> <!-- end slide menu details/livraison --> my details.php files
<?php include('config.php'); // prepare request display delivery details delivery id $result = $bdd->prepare("select * livraisons id = ?"); $result->execute(array($_get['id'])); // while loop check data while ($donnees_details = $result->fetch()) { ?> <!-- start slide menu details/livraison --> <div class="container-details_header"> <span id="close"></span> // display data db row <p class="container-details_header_date">livraison le <?php echo $donnees_details['delivery_date']; ?></p> <p class="container-details_header_type">tournée</p> </div> <!-- start détails de la livraison --> <div class="container-details_body"> <!-- start détails de la livraison infos --> <div class="container-details_body_infos"> <p class="container-details_body_infos_title">infos</p> <p class="container-details_body_infos_time"><span><?php echo $donnees_details['delivery_time']; ?></span> heure de début</p> <p class="container-details_body_infos_volume"><span><?php echo $donnees_details['delivery_volume']; ?></span> caisse de mesure</p> <div class="container-details_body_infos_separator"></div> </div> <!-- end détails de la livraison infos --> </div> <!-- end slide menu details/livraison --> <?php } // close cursor $reqdelivery->closecursor(); ?> my ajax script
$.ajax({ url: 'details.php', type : 'get', data : 'id=' + id, datatype : 'html', success: function(data) { //#countainer-details open delivery details panel using jquery $('#container-details').html(data); } });
one approach take watch click event on link, parse id, , make ajax call.
something following:
add data-id attribute links:
<td class="div_data_more_informations"> <ul> //detail button display details page <li><a data-id="<?php echo $donnees['id'] ?>" href="#">details</a></li> </ul> </td> ajax script:
<script> //get links var links = $(".div_data_more_informations ul li a"); //loop through links , add on click listeners links.each(function(){ var link = $(this); var id = link.data('id'); link.click(function(){ $.ajax({ url: 'details.php', type : 'get', data : 'id=' + id, datatype : 'html', success: function(data) { $('#container-details').html(data); } //prevent link refreshing page return false; }); }); </script> for more information click event: https://api.jquery.com/click/ , each function: https://api.jquery.com/each/
you simplify code using .get method instead of $.ajax call: https://api.jquery.com/jquery.get/
$.get('details.php', { "id" : id }, function(data){ $('#container-details').html(data); })
Comments
Post a Comment