Avatar billede KurtG Forsker
27. april 2025 - 17:31 Der er 7 kommentarer

Indsæt "snurrebasse" på side med upload

Jeg har en side, hvor der uploades mange (>600) filer til en database.
Det tager jo tid og derfor vil jeg indsætte et eller andet på siden, der indikerer, at der sker noget!
Man vil nok sige, at det skal nok være et javascript, men det mestrer jeg ikke, så der skal jeg hjælpes meget!
Nogen forslag?
Avatar billede Peter Professor
27. april 2025 - 19:47 #1
Avatar billede KurtG Forsker
27. april 2025 - 20:15 #2
Det ser rigtig interessant ud, jeg prøver det, når tiden tillader det (vi pensionister tror altid, at vi har travlt :-)  ).
Avatar billede Peter Professor
28. april 2025 - 16:56 #3
Jeg kender det 😉
Jeg er selv pensioneret, og har ikke forstået hvordan vi kunne nå alt det vi gjorde samtidig med arbejdet, der tog alt for meget af vores fritid 😂
Avatar billede KurtG Forsker
28. april 2025 - 19:33 #4
Nu har jeg indsat det efter bedste overbevisning, men den kan ikke finde funktionerne. Den kommer med fejlmeldingen:
Fatal error: Uncaught Error: Call to undefined function showSpinner() in /customers/f/c/e/vinderupavis.online/httpd.www/DB_upload.php:135
Skal jeg vise al koden her? 235 linjer, som nok kan skæres ned til ca. 150!
Avatar billede ejvindh Ekspert
28. april 2025 - 20:12 #5
Umiddelbart ser det ud til at du prøver at køre showspinner fra php, og det kan du ikke eftersom det er en JavaScript funktion. Det kræver enten Ajax-kald, eller at du udskriver noget html kode, der igangsætter JavaScript.

Hvad jeg prøver på at sige er, at det kræver lidt forståelse for forholdet mellem php, html, css og JavaScript at få sådan en loader til at fungere. I hvert fald, hvis du skal have den til at forsvinde, når indlæsningen er færdig.
Avatar billede Peter Professor
28. april 2025 - 20:17 #6
nederst i det Grok link kan du trykke på "fortsæt samtale"
Der har jeg sat dit sidste spørgsmål ind, jeg har gjort det nemt for dig, og har gjort det for dig
Prøv det😉
https://grok.com/share/bGVnYWN5_4f9709a7-fb12-4282-bdd4-e21822200df5
Avatar billede KurtG Forsker
29. april 2025 - 08:21 #7
Nedskåret ser det således ud: (det er forvirrende, da indrykningen forsvinder)
<?php
    //Diverse opsætning    ?>
<html>
<style>
    /* Container for spinner */
        ...
    /* Styling af selve snurrebassen */
    .loader
    {
        ...
    }

    /* Animation for rotation */
    @keyframes spin
    {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
</style>

<script>
    // Funktion til at vise spinner
    ...
</script>

<head>
</head>
<body>
    <form action="DB_upload.php" method="post" enctype="multipart/form-data">
        <p align="center">
        <input type="checkbox" name="Gem" value="OFF"><label>Gem i databasen ved kørsel</label>
        &nbsp;&nbsp;&nbsp;&nbsp;
        <input type="submit" value="Start indsættelsen af filer" name="submit">
        </p>
    </form>
    <?php
    //-----------------------------------
    if (isset($_POST['submit']))
    {
        try
        {
            //Opret forbindelse til databasen
            $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
            // set the PDO error mode to exception
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            // prepare sql and bind parameters
                ...
            //Loop gennem foldere og filer i Avis og Tekst
        //    showSpinner();
            $dirPath1 = $_SERVER['DOCUMENT_ROOT']."/Aviser";
            if ($handle = opendir($dirPath1))
            {
                $filctr = 0;
                $dirctr = 0;
                while (false !== ($entry = readdir($handle)))
                  {
                    if ($entry != "." && $entry != "Txt" && $entry != ".." ) //Ikke dir-up/dir-dwn eller txt.filer (kun pdf)
                    {
                        //echo "Folder for pdf-filer: ".$entry . "<br>";
                        $dirctr = $dirctr+1;
                        $arrFiles1[] = $entry;
                        $dirPath2 = $dirPath1."/".$entry;
                        //    echo "dirPath2: ".$dirPath2."<br>";
                        if ($handle2 = opendir($dirPath2))
                        {
                              $txtctr = 0;
                            while (false !== ($entry2 = readdir($handle2)))
                              {
                                if ($entry2 != "." && $entry2 != ".." )
                                {
                                    // Herunder: Konstruer navnet på tekstfilen ud fra pdf-filens navn og hent indhold til felter
                                    .....
                                    //Hent tekstfilen og teksten
                                    $txtfile = fopen("$Tt", "r") or die("Kan ikke finde filen ".$Tn."<br>");
                                    if (!fopen("$Tt", "r"))
                                    {
                                        echo ("Kan ikke finde filen ".$Tn."<br>");
                                    }
                                    else
                                    {
                                        $Txt = file_get_contents($Tt);    //Find indhold til de enkelte felter i databasen
                                        $Aar = "$entry";
                                        $Nr = trim($Anr);
                                        if(!empty($_POST['Gem']))
                                        {
                                            $stmt->execute();    //Udfører indsættelsen i databasen
                                        }
                                    }
                                    $filctr = $filctr+1;
                                }
                            }
                            closedir($handle2);
                        }
                        //Echo "Der et indsat fra ".$dirctr." år!<br>";
                    }
                }
                closedir($handle);
            }
        //    hideSpinner();
            ?>
           
            <div id="spinner" style="display: none;">
                <div class="loader"></div>
                <p>Uploader filer, vent venligst...</p>
            </div>   
                       
            <?php
            if(!empty($_POST['Gem']))
            {
                //Udskriv status om filer mm
            }}
            else
            {
                //Skriv, at der ikke er indsat i databasen
            }
        }
        catch(PDOException $e)
        {    echo '<p align="center"><b>Der er fejl: '.$e->getMessage().'</p>'; }
        $conn = null;
    }    // (isset($_POST['submit']))
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester