2016-09-11 2 views
0

Also mache ich diese Web-Systemsteuerung, aber ich bin nicht gut mit JS. Ich verwende MaterializeCSS + HTML + PHP für die DB Anmeldung und so weiter.Materialisecss Toasts mit PHP

Ich möchte die folgende einfache Funktionalität haben, aber aus irgendeinem Grund versage ich.

Ich möchte den Benutzernamen und das Passwort in meinem Formular eingeben und drücken Sie auf Anmelden. Da ich nicht sicher bin, wie Toasts arbeiten, nehme ich an, sobald ich die Seite die Toast tatsächlich verschwindet, vielleicht ist es besser zu zeigen den Toast auf der neuen Account-Seite, die anstelle der Login-Seite selbst geöffnet wird. Ich habe beides versucht, aber es erscheint nicht.

-Code Toast zu zeigen:

echo "<script> Materialize.toast('Login successful!', 3000, 'rounded') </script>"; 

Ich fand ein Thema irgendwo auf Russisch sagen, das ein Problem mit DOM hat und verwendet, um seine Lösung wieder ohne Erfolg.

Hinweis: Ich verwende bereits andere JS-abhängige Komponenten wie Modals und Tooltips.

Console Fehler: Uncaught Reference: Materialise ist nicht definiert

+0

Wie es scheitern? Gibt es Fehler beim Laden der Seite? – developer

+0

Konsole zeigt: Uncaught ReferenceError: Materialize ist nicht definiert – iBobb

Antwort

0

hatte ich zwei Probleme. Am wichtigsten war, dass ich den Code in einem IF getestet habe, der nicht einmal ausgeführt wurde. Ich Idiot. Zweitens, ich war nicht onDocumentReady mit - $(function(){});

Das Dokument Referrer nur die Seite der mich gesandt hat, dort zu überprüfen ist, aber hier ist mein Arbeits Code ein MaterializeCSS Toast von PHP zu erstellen:

echo " 
<script> 
$(function(){ 
    if (document.referrer == 'http://yourdomain/index.php?p=Login'){ 
    Materialize.toast('Login successful', 2200, 'rounded') 
} 
}); 
</script>"; 
0

Sie setzen Ihre wenn Bedingung in php so

<?php 
    `if (document.referrer == 'http://yourdomain/index.php?p=Login') 
    { 
     echo " 
     <script> 
     Materialize.toast('Login successful', 2200, 'rounded'); 
     </script>"; 
    }` 
?> 
1

Ich hatte das gleiche Problem mit einem meiner PHP-Skripte. Am Ende fand ich nach vielen Recherchen heraus, dass ich JQuery nicht eingeschlossen hatte. Materialise CSS benötigt JQuery, das vor der Datei materialize.js geladen wurde. Stellen Sie sicher, dass jquery geladen ist. Der Konsolenfehler wird angezeigt, weil JQuery nicht geladen ist.

Ich testete diesen Code auf meinem localhost ohne jquery Toast funktioniert nicht, aber wenn geladen, funktioniert es gut.

<?php 
    if (isset($_GET['msg'])){ 
     $msg = $_GET['msg']; 
     echo "<script>Materialize.toast('$msg', 3000, 'rounded');</script>"; 
    } 
    ?> 
Verwandte Themen