Avatar billede torstein Novice
04. juni 2017 - 16:05 Der er 11 kommentarer og
1 løsning

Start af function()

Jeg har fundet en Pop up Msg på nettet, som jeg gerne vil bruge på min php-side. Hvorledes starter jeg funktionen, så den automatisk kører når min Mysqli query er godkendt. Jeg har uploaded de to .js filer til sitet. Jeg skal sikkert sætte noget andet ind end .on(click)

index.php har bl.a.:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>window.jQuery || document.write('<script src="jquery.min.js"><\/script>')</script>

        <script src="jquery.rustaMsgBox.js"></script>

        <script type="text/javascript">

            $(document).ready(function() {
               
                /* Basic */
                $('#show-info-message').on('click', function(){
                    $.rustaMsgBox({ "content" : "hi I'm the rusta message box" });
                });
            }); // end document.ready

        </script>

dataudtrækssiden.php har bl.a.:

if (mysqli_query($mysqli, $sql)) {?>
        $.rustaMsgBox({ "succes" : "Opdateret.."});
        <?php
}
Avatar billede keysersoze Guru
04. juni 2017 - 16:16 #1
Hvordan kører du din kode? Ajax eller?
Avatar billede torstein Novice
04. juni 2017 - 16:24 #2
Ren HMTL / PHP

(som du nok kan se/forstå så er jeg på dybt vand her. Har ledt efter et script, som jeg bare kunne copy/paste ind - dette var det nærmeste jeg kunne komme)
Avatar billede Carnac Forsker
04. juni 2017 - 16:27 #3
Er Ajax ikke noget man propper i toilettet?
Avatar billede torstein Novice
04. juni 2017 - 16:38 #4
@Carnac jeg er med på sjove bemærkninger når jeg har fået hjælp til mit problem. Hvis du har et mere konstruktivt indlæg/link så post gerne :-/
Avatar billede keysersoze Guru
04. juni 2017 - 16:46 #5
Ud fra ovenstående kode er det umuligt at sige hvad der går galt.
Avatar billede torstein Novice
04. juni 2017 - 17:01 #6
@keysersoze:ok, tak.

hele demoen ser således ud. Jeg skal bare bruge en af kasserne, som så skal hentes automatisk når min Mysqli query er kommet ud. Håber det giver mere mening. I denne demo genereres knapper, som der trykkes på for at boksen kommer frem.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title></title>
        <meta name="description" content="">

        <style type="text/css">

            .custom-msgBox {
                    padding: 8px 35px 8px 14px;
                    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
                    -webkit-border-radius: 4px;
                    -moz-border-radius: 4px;
                    border-radius: 4px;
                    -moz-box-shadow: 10px 10px 5px rgba(0,0,0,0.4);
                    -webkit-box-shadow: 10px 10px 5px rgba(0,0,0,0.4);
                    box-shadow: 10px 10px 5px rgba(0,0,0,0.4);
                    background-color: #F5FFFF;
                    color: blue;
                    border: 1px solid red;
                    position: relative;
                    width: 80%;
                    max-width: 500px;
                    margin: 0 auto;
            }

        </style>
    </head>
    <body>

        Fade Out
        <p>
        <button id="show-info-message">Info Message</button>
        <button id="show-warning-message">Warning Message</button>
        <button id="show-success-message">Success Message</button>
        <button id="show-error-message">Error Message</button>
        <button id="show-custom-message">Custom Style Message</button>

        <p>
        No Fade
        <p>
        <button id="show-info-message-2">Info Message</button>
        <button id="show-warning-message-2">Warning Message</button>
        <button id="show-success-message-2">Success Message</button>
        <button id="show-error-message-2">Error Message</button>
        <button id="show-custom-message-2">Custom Style Message</button>


        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>window.jQuery || document.write('<script src="jquery.min.js"><\/script>')</script>

        <script src="jquery.rustaMsgBox.js"></script>

        <script type="text/javascript">

            $(document).ready(function() {
               
                /* Basic */
                $('#show-info-message').on('click', function(){
                    $.rustaMsgBox({ "content" : "hi I'm the rusta message box" });
                });
                $('#show-warning-message').on('click', function(){
                    $.rustaMsgBox({ 'mode' : 'warning' });
                });               
                $('#show-success-message').on('click', function(){
                    $.rustaMsgBox({ 'mode' : 'success' });
                });
                $('#show-error-message').on('click', function(){
                    $.rustaMsgBox({ 'mode' : 'error' });
                });
                $('#show-custom-message').on('click', function(){
                    $.rustaMsgBox({ 'customClass' : 'custom-msgBox' });
                });

                /* No Fade */
                $('#show-info-message-2').on('click', function(){
                    $.rustaMsgBox({ 'mode' : 'info' , 'fadeOut': false });
                });
                $('#show-warning-message-2').on('click', function(){
                    $.rustaMsgBox({ 'mode' : 'warning' , 'fadeOut': false });
                });               
                $('#show-success-message-2').on('click', function(){
                    $.rustaMsgBox({ 'mode' : 'success' , 'fadeOut': false });
                });
                $('#show-error-message-2').on('click', function(){
                    $.rustaMsgBox({ 'mode' : 'error' , 'fadeOut': false });
                });
                $('#show-custom-message-2').on('click', function(){
                    $.rustaMsgBox({ 'customClass' : 'custom-msgBox' , 'fadeOut': false });
                });

            }); // end document.ready

        </script>
    </body>
</html>
Avatar billede keysersoze Guru
04. juni 2017 - 17:16 #7
Der er for så vidt ikke noget magi i det - php, og dermed også dit mysql, kører på serveren og når det er færdigt outputtes den klient-kode, heriblandt JavaScript, til browseren, så alt du behøver af kode er

$(document).ready(function() {
    $.rustaMsgBox({ "succes" : "Opdateret.."});
});

nederst i dit dokument, selvfølgelig med de samme referencer til jquery og rustaMsgBox som ellers.
Avatar billede torstein Novice
04. juni 2017 - 17:39 #8
Nu står alt dette i starten af min side, hvor mit sql køres. Den opdaterer korrekt (som den har gjort hele tiden) men der kommer ikke noget svar fra scriptet. SUK


<html>
<head>
    <style type="text/css">

            .custom-msgBox {
                    padding: 8px 35px 8px 14px;
                    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
                    -webkit-border-radius: 4px;
                    -moz-border-radius: 4px;
                    border-radius: 4px;
                    -moz-box-shadow: 10px 10px 5px rgba(0,0,0,0.4);
                    -webkit-box-shadow: 10px 10px 5px rgba(0,0,0,0.4);
                    box-shadow: 10px 10px 5px rgba(0,0,0,0.4);
                    background-color: #F5FFFF;
                    color: blue;
                    border: 1px solid red;
                    position: relative;
                    width: 80%;
                    max-width: 500px;
                    margin: 0 auto;
            }

        </style>
</head>
<body>
   
<?php


// EDIT i DB

if (isset($_GET['update'])){
   
    $id = $_POST['id'];
    $ny_telefon1 = str_replace(' ', '',$_POST['ny_telefon1']);
    $ny_telefon2 = str_replace(' ', '', $_POST['ny_telefon2']);
    $ny_kommentar = $_POST['ny_kommentar'];
   
    $sql = "UPDATE telefon SET telefon1 = '$ny_telefon1', telefon2 = '$ny_telefon2', kommentar = '$ny_kommentar' WHERE id = '$id'";
    if (mysqli_query($mysqli, $sql)) {?>
   
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script>window.jQuery || document.write('<script src="jquery.min.js"><\/script>')</script>
        <script src="jquery.rustaMsgBox.js"></script><script type="text/javascript">

            $(document).ready(function() {
    $.rustaMsgBox({ "succes" : "Opdateret.."});
});
// end document.ready

        </script>
        <?php
    //tidligere stod der: echo "Opdateret<br><br>";
} else {
    echo "Error: " . mysqli_error($mysqli)."<br><br>";
    }
}
Avatar billede keysersoze Guru
04. juni 2017 - 18:15 #9
Kig i din developer toolbar og se om der kommer en fejl. Kender ikke til rustaMsgBox, men i din demo har du ikke noget eksempel med de parametre du angiver - det ser ud som om den understøtter fx content, mode og customClass men du angiver succes og du kan ikke selv opfinde parametre.

Derudover bør du nok kigge på prepared statements til din sql.
Avatar billede torstein Novice
04. juni 2017 - 18:37 #10
Kører det desværre online via one.com....

Fik flg:  $.rustaMsgBox({ "succes" : "Opdateret.."});
rettet til:  $.rustaMsgBox({ 'mode' : 'success'  });

stadig ingenting.....

rustaMsgBox js fil:
(function ( $ ) {

    $.rustaMsgBox = function(options) {

        // set default options
        var settings = $.extend({
            closeButton: false,
            fadeOut: true,
            fadeTimer: 1500,           
            content: 'Add some content here...',
            zindex: 3022,
            width: '70%',
            maxWidth: '300px',
            mode: 'info', /* warning, success, error, info */
            bottom: '-90px',
            stack: true,
            opacity: 0.9
        }, options );

        // if fadeOut is false then we need to show the closeButton
        if (!settings.fadeOut){
            settings.closeButton = true;
        }

        // styles for the delivered modes
        if ( settings.mode == 'warning' )
        {
            settings.backgroundColor = '#fcf8e3';
            settings.border = '1px solid #fbeed5';
            settings.color = '#c09853';
        }
        else if ( settings.mode == 'success' )
        {
            settings.backgroundColor = '#dff0d8';
            settings.border = '1px solid #d6e9c6';
            settings.color = '#468847';
        }
        else if ( settings.mode == 'error' )
        {
            settings.backgroundColor = '#f2dede';
            settings.border = '1px solid #eed3d7';
            settings.color = '#b94a48';
        }
        else if ( settings.mode == 'info' )
        {
            settings.backgroundColor = '#d9edf7';
            settings.border = '1px solid #bce8f1';
            settings.color = '#3a87ad';
        }

        // create a unique ID for this message box
        var randomNumber = (((1+Math.random())*0x10000)|0).toString(16).substring(1);
        var currentDateTime = new Date();
        currentDateTime = String(currentDateTime.getDate()) + String(currentDateTime.getMonth() +1) + String(currentDateTime.getFullYear()) + String(currentDateTime.getHours()) + String(currentDateTime.getMinutes()) + String(currentDateTime.getSeconds()) + String(currentDateTime.getMilliseconds());
        var msgBoxId = 'rusta-msgBox' + '_' + randomNumber + '_' + currentDateTime;

        $('<div/>', {
            id: msgBoxId,
            css: {
                'margin': '0px',
                'z-index': settings.zindex,
                'position': 'fixed',
                'bottom': settings.bottom,
                'width': '100%',
                'left': '0px',
                'opacity': settings.opacity
            }
        }).appendTo('body');

        if (settings.customClass)
        {
            $('<div/>', {
                html: settings.content,
                addClass: 'rusta-msgBox ' + settings.customClass
            }).appendTo('#'+msgBoxId);   
        }
        else
        {
            var padding, textAlign;
            if (settings.closeButton)
            {
                padding = '8px 35px 8px 14px';
                textAlign = 'left';
            } else {
                padding = '8px 14px 8px 14px';
                textAlign = 'center';
            }

            $('<div/>', {
                html: settings.content,
                addClass: 'rusta-msgBox',
                css: {
                    'padding': padding,
                    'text-align': textAlign,
                    'text-shadow': '0 1px 0 rgba(255, 255, 255, 0.5)',
                    '-webkit-border-radius': '4px',
                    '-moz-border-radius': '4px',
                    'border-radius': '4px',
                    '-moz-box-shadow': '10px 10px 5px rgba(0,0,0,0.4)',
                    '-webkit-box-shadow': '10px 10px 5px rgba(0,0,0,0.4)',
                    'box-shadow': '10px 10px 5px rgba(0,0,0,0.4)',
                    'background-color': settings.backgroundColor,
                    'color': settings.color,
                    'border': settings.border,
                    'position': 'relative',
                    'width': settings.width,
                    'max-width': settings.maxWidth,
                    'margin': '0 auto'
                }
            }).appendTo('#'+msgBoxId);           
        }

        if (settings.closeButton)
        {
            // add close button
            $('<button/>', {
                html: 'x',
                addClass: 'rusta-msgBox-close',
                css: {
                    'position': 'absolute',
                    'right': '8px',
                    'top': '2px',
                    'line-height': '20px',
                    'padding': '0',
                    'cursor': 'pointer',
                    'background': 'transparent',
                    'border': '0',
                    '-webkit-appearance': 'none',
                    'float': 'right',
                    'font-size': '16px',
                    'font-weight': 'bold',
                    'line-height': '20px',
                    'color': '#000000',
                    'text-shadow': '0 1px 0 #ffffff',
                    'opacity': '0.2',
                    'filter': 'alpha(opacity=20)'
                },
                data: { 'rusta-msg-box': msgBoxId  }
            }).appendTo('#'+msgBoxId + ' .rusta-msgBox');

            // add close button click functionality
            $('#' + msgBoxId + ' .rusta-msgBox-close').on('click', function(){
                var thisMsgBoxId = $(this).data('rusta-msg-box');
                $('#' + thisMsgBoxId).fadeOut(400, function(){
                    $('#' + thisMsgBoxId).remove();
                });
            });
        } // end close button block

        // animate message box on to screen
        $('#' + msgBoxId).animate({
            "bottom": 20  + (parseInt(settings.stack?1:0) * parseInt($(".rusta-msgBox").length - 1))*50
        }, 600);
       
        // fade out after set amount of time
        if (settings.fadeOut)
        {
            setTimeout(function(){
                $('#' + msgBoxId).fadeOut(400, function(){
                    $('#' + msgBoxId).remove();
                });           
            }, settings.fadeTimer)           
        }
    }

}( jQuery ));
Avatar billede keysersoze Guru
04. juni 2017 - 19:02 #11
Om du kører det via one eller ej har ikke noget at sige - http://www.soze.dk/miniblog/bliv-en-hurtigere-webudvikler-med-browservaerktoejer/
Avatar billede torstein Novice
05. juni 2017 - 13:21 #12
@keysersoze jeg fandt fejlen. I min iver havde jeg sat er ´i stedet for et ' i en setting i scriptet.

Mange tak for hjælpen med 'onload' isf onclick
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

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