Création de diaporama en HTML, PHP, MySQL

la programmation


Je crée un système au sein de notre entreprise pour mettre à niveau un ancien système conçu pour afficher des images sur nos téléviseurs. J’ai créé un formulaire qui fonctionne dans lequel un utilisateur saisit des informations telles que le nom, la durée de lecture, la date de fin (quand la lecture de la diapositive doit s’arrêter), ainsi qu’une image. L’image est stockée dans un dossier, le nom de l’image est stocké dans MySQL avec les autres données. L’objectif final est de rendre cela automatique en fonction du temps de jeu soumis.

J’ai travaillé là-dessus, donc lorsque l’utilisateur clique sur le bouton, il affiche la première diapositive du tableau. Lorsque je clique à nouveau sur le bouton, je m’attends à ce qu’il passe à la diapositive suivante, ce qui n’est pas le cas. Je crois que ce qui se passe ici, c’est que lorsque les données de publication sont envoyées, n est réinitialisé à -1, ce qui les fait rester au même endroit, corrigez-moi si je me trompe. Je pense que je dois continuer à poster « n » ?

<form method="post">
    <input type="submit" name="test" id="test" value="Next Image" /><br/>
</form>

<?php
$n = -1;
    
function SlideShow($n) {
	$n++;
	$conn = mysqli_connect("localhost", "root", "", "tsl_tv_system");
	$image_details  = mysqli_query($conn, "SELECT * FROM slides limit $n,1");
     	while ($row = mysqli_fetch_array($image_details)) {    
	      		echo "<img src='upload/upload/".$row['attachment_loc']."' >";   
     			return $n; 
    }     
}

if(array_key_exists('test',$_POST)){
   SlideShow($n);
}
?>

Ce que j’ai essayé :

J’ai essayé diverses ressources en ligne sans succès.

Solution 1

Vous devez soit soumettre le numéro de la diapositive actuelle au serveur – quelque chose comme ceci :

PHP
<?php
    function SlideShow($slide){
        $conn = mysqli_connect("localhost", "root", "", "tsl_tv_system");
        $image_details  = mysqli_query($conn, "SELECT * FROM slides limit $slide, 1");
        $row = mysqli_fetch_array($image_details);
        echo "<img src='upload/upload/".$row['attachment_loc']."'>";
    }
    
    $n = isset($_POST['n']) ? intval($_POST['n']) : -1;
?>
<form method="post">
    <input type="hidden" name="n" value="<?= $n >" />
    <input type="submit" name="test" value="Next Image" />
</form>
<?php
    SlideShow($n + 1);
?>

Ou affichez toutes les diapositives à la première demande et utilisez Javascript pour basculer entre elles.

コメント

タイトルとURLをコピーしました