8722 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un projet un cours pour un site intranet. Je dois lister les fichiers pdf lors de l'ouverture d'un dossiers. Jusque ici en tout va bien.
Mais j'aimerai faire en sorte lorsque je clique sur l'un des pdf elle s'ouvre à côté de la liste des fichiers et que lorsque je clique sur un autre pdf la prochaine s'ouvre et l'autre se ferme ainsi de suite...

On m'a dit de passer par du ajax mais là je suis bloqué

Que dois-je faire ?

voici mon code au cas ou:

<?php
function list_dir($name) {
  if ($dir = opendir($name)) {
    while($file = readdir($dir)) {
      echo '<li><a href="./ola/' . $file . '">' . $file . '</a></li>';
      if(is_dir($file) && !in_array($file, array(".",".."))) {
        list_dir($file);
      }
    }
    closedir($dir);
  }
}
list_dir("./ola");



?>

Modifié par mvc (27 Feb 2018 - 17:32)
Modérateur
Et l'eau,

Je pense que cette manip devrait fonctionner en jcuicui (code fait de tête, je peux m'être trompé.) :


$(function(){
   $('a').click(function(e) { 
        var urlPdf = $(this).attr('href');
        jQuery.ajax({
            type: "GET",
            processData: false,
            url: urlPdf,
            contentType: "application/xml; charset=utf-8",
            success: function(data){
                $('#ma_div_reception').empty().append('<iframe src="'+ urlPdf +'"></iframe>');
            }
        });
        e.preventDefault();
    });
});


En vanillaJS, il faudrait utiliser XMLHttpRequest .

J'ai fait un truc très basique. Le principe est de comprendre que tu vas devoir utiliser une iframe pour que le rendu de ton pdf soit correct.

Au passage, je pense que tu devrais revoir cette ligne là (ola en dur) afin d'éviter des erreurs de chemin :

echo '<li><a href="./ola/' . $file . '">' . $file . '</a></li>';

Modifié par niuxe (27 Feb 2018 - 21:26)
Salut !

Merci de ton retour.

J'ai fais un copié collé du js. En tout cas il y a pas d'erreur d'après la console et les fichiers ne s'ouvrent plus. Après pour le XMLHttpRequest faut-il l'impliquer dans mon script aussi ?

Dernière question '#ma_div_reception' cette div je vois l'encercler autour de mon url ?
Modérateur
Lis mon code et modifie le en fonction de ton architecture et de tes besoins. XMLHttpRequest est une api qui permet de faire de l'Ajax en natif.