Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 43.392
» Neuestes Mitglied: lerdanelte
» Foren-Themen: 506
» Foren-Beiträge: 2.092

Komplettstatistiken

Benutzer Online
Momentan sind 49 Benutzer online
» 2 Mitglieder
» 45 Gäste
Bing, Google, Sempervivum

Aktive Themen
Email Blues: SBCGlobal em...
Forum: Javascript
Letzter Beitrag: SBCGlobal
Vor 57 Minuten
» Antworten: 0
» Ansichten: 6
Does Zhewitra 60 Mg need ...
Forum: Html
Letzter Beitrag: xavyera
Vor 57 Minuten
» Antworten: 0
» Ansichten: 2
Probleme Firebase Databas...
Forum: Javascript
Letzter Beitrag: Sempervivum
Gestern, 18:26
» Antworten: 3
» Ansichten: 40
Verbindung von Entscheidu...
Forum: Javascript
Letzter Beitrag: Ashriel
16.04.2024, 11:02
» Antworten: 3
» Ansichten: 78
Neu laden ohne Scrolling
Forum: Javascript
Letzter Beitrag: Tom
16.04.2024, 08:48
» Antworten: 0
» Ansichten: 17
Formularfelder addieren u...
Forum: Javascript
Letzter Beitrag: heena123
16.04.2024, 08:03
» Antworten: 17
» Ansichten: 339
FMOVIES
Forum: Javascript
Letzter Beitrag: xomanig690
16.04.2024, 07:07
» Antworten: 0
» Ansichten: 22
Spam gelöscht
Forum: Ankündigungen,Neuigkeiten
Letzter Beitrag: rzscout
10.04.2024, 23:37
» Antworten: 0
» Ansichten: 147
Reihenfolge der Karten
Forum: Brauche Javascript / Userscript
Letzter Beitrag: hardee
10.04.2024, 17:54
» Antworten: 4
» Ansichten: 88
Variable aus Funktion zur...
Forum: Javascript
Letzter Beitrag: Kai_Behncke
27.03.2024, 14:58
» Antworten: 2
» Ansichten: 119

  PHP-DateTime in Javascript verwenden
Geschrieben von: Exorior - 23.11.2022, 12:12 - Forum: Javascript - Antworten (1)

Hallo zusammen, 

ich habe folgendes Problem:
- In PHP habe ich aus der Datenbank ein "DateTime" Wert für einen Countdown geladen
- Dieser Wert sieht so aus "2022-11-23 11:45:00" und existiert nun in meiner PHP Variable "$quiz_countdown"

 Nun habe ich in meinem Javascript-Bereich folgendes Skript:

Code:
<script>
    //Ende des Countdowns - Hier wird der Wert von PHP benötigt
    var countDownDate = <?php echo $quiz_countdown; ?>;

    //Funktion um das Skript jede Sekunde auszuführen
    var myfunc = setInterval(function() {
    var now = new Date().getTime();
    var timeleft = countDownDate - now;
       
    var minutes = Math.floor((timeleft % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((timeleft % (1000 * 60)) / 1000);
       
    document.getElementById("timer").innerHTML = minutes + "m " + seconds + "s "
       
    }, 1000);
</script>


Mein Problem ist nun, dass Javascript mit meinem PHP DateTime Format nichts anfangen kann.
Ich benötige das folgende Format: "Nov 23, 2022 11:45:00"

Hat jemand eine Idee wie ich das umsetzen kann?
Ich bin langsam echt am verzweifeln :(

Vielen Dank schonmal

Hat sich erledigt.
Habe das Problem lösen können:

Ich konvertiere im Javascript das Format wie folgt um:
Code:
var countDownDatePHP = '<?php echo $quiz_countdown; ?>';
var countDownDate = new Date(countDownDatePHP.replace(/-/g,"/"));

Drucke diesen Beitrag

  Javascript, php, Hosting und Urheberrecht
Geschrieben von: Michael - 19.11.2022, 15:32 - Forum: Javascript - Antworten (1)

Hallo ihr lieben,
Ich bin beruflich kein Programmierer. Hab mir aber schon vor ein paar Jahren java selbst beigebracht und auch für die Arbeit in unserer abteilung so a paar kleinere nützliche Programme geschrieben. Jetzt hatte ich wieder ein bißchen Zeit und wollte was neues lernen. Deshalb hab ich mir mit zwei dicken Büchern html, css und javascript selbst beigebracht. Html und css ist finde ich einfach und javascript ähnelt vieles java. So dass ich das auch gut hinbekommen hab. Jetzt ist die Zeit für mich gekommen etwas zu erschaffen. Das gelernte anzuwenden... Ich hab auch schon eine Idee für eine Webseite.  Nicht grad die 1mio doller Idee, grins. Aber macht ja nix...

Aber ein paar Fragen tun sich da noch auf. Vielleicht könnt ihr mir da Tips geben. 

1. Hosting 
Auf was muss ich achten wenn ich eine Domain und hosting buche. Wie mach ich das? Schicke ich zu einem Anbieter einfach meine html, css und js Dateien und die machen das dann schon? Oder wie läuft das?
2. Impressum 
Muss ich unbedingt ein Impressum auf die Seite schreiben? Auch wenn ich kein Geld damit verdiene?
3. Urheberrecht 
Was ist alles Urheberrechtlich geschützt? Also ich mein es ist klar dass man keine Musik oder Filme auf die Seite packen sollte. Auch wenn jemand eine Kurzgeschichte oder buch geschrieben hat sollte man das wohl nicht klauen. Das ist denke ich klar. Aber was ist mit Bildern wenn ich bei einer Seite nichts von Urheberrecht sehe. Kann ich so ein Bild kopieren und icn mein Logo mit einbauen? Oder was ist z.b. mit allgemeinen sachen wie eine Schlagzeile von einem nachrichtensender? Oder darf ich das tv-programm von einem tv Sender einfach einfügen. Mit tv programm meine ich z.b. was läuft heute auf pro7 und sat1 zwischen 20:15 und 24 Uhr. Oder was ist mit Sachen aus Wikipedia. Darf man da etwas rauskopieren und verwenden? Oder mache ich mir da zu viele Gedanken? Nicht das mich dann noch jemand für mein Hobby verklagt... 
4. Php
Ich überlege auch noch php und sql zu lernen. Ist das schwieriger? Und was genau kann man damit alles noch machen? Kann mir jemand das verständlich erklären? 

Wenn mir jemand helfen kann wäre ich sehr dankbar.

Drucke diesen Beitrag

  Grafiken in Original- und Fenstergröße anzeigen
Geschrieben von: Prometheus - 18.11.2022, 23:27 - Forum: Javascript - Antworten (3)

Hallo zusammen,

ich habe mich jetzt angemeldet, weiß aber nicht ob es so einen Vorstellungsthread gibt, ich seh keinen?

Ich hab mich vorgestern endlich entschieden, dass ich es mit JS versuchen will (Alternative war z.B. Java)(schon sehr lange viel dazu gesehen und gelesen), und habe dann auch gleich mal VSC installiert und so ein Tutorial ausprobiert. Leider hat YouTube ein notorisches Problem mit mir, und ich habe aktuell das Problem, dass meine Kommentare nach wenigen Sekunden grundsätzlich verschwinden. Ich kann den Tutorial-Kanal daher nichts fragen.
Also versuche ich es mal hier.

Folgendes ist mein Problem, gewissermaßen ist es ein triviales Perfekionismusproblem, und das Tutorial geht nicht darauf ein.
Es soll ein kleiner SpaceShooter erstellt werden. Die Grafiken werden im Script als kleiner Container definiert:


Code:
let fighter = {
            x: 950,
            y: 850,
            width: 100,
            height: 100,
            src: 'img/ships/fighters/fighter_11.png'
width und height werden hier einfach mit einer festen Pixelgröße angegeben. Was ich gerne machen würde: width und height so definieren, dass sie einfach in originaler Auflösung angezeigt werden. Dasselbe versuchte ich so ähnlich mit dem Canvas bzw. Background: der soll sich einfach ans Fenster oder zumindest an den Bildschirm anpassen. Alle Befehle die ich versuchte, führen dazu, das die Spielfläche im Browser auf ein kleines Quadrat oder Rechteck schrumpft.

Ich versuchte schon alles mögliche, mit verschiedenen "Satzzeichen" (; , (); ... mit = oder : usw. auch ohne) nichts geht:

w/d = 100%
w/d = original.
w/d = natural.
w/d = device.
w/d = window.
w/d = screen.
w/d = real.....
w/d = inner.
w/d = outer.
w/d = browser.

usw. alle möglichen Kombinationen... Auch versuchte ich dies verschieden einzufügen, blockierte nichts, half aber auch nicht:
ctx.width  = window.innerWidth;
ctx.height = window.innerHeight;

usw. lange Liste. Finde ich die richtige Syntax nicht? Warum ist es nicht möglich, Width und Height als original zu definieren? Oder den Hintergrund auf Window oder Screengröße zu ziehen? Ich habe schon Stunden lang probiert und gesucht. Ich habe natürlich noch andere Idee von der Lösung. Vielleicht versteht der Cotainer nicht was ich will, weil das img ja dort nicht geladen wird? Dann wüsste ich aber auch nichts genaues mehr...

Ausserdem fand ich viele Code-Stücke, diverse Beiträge im Internet, die aber komplizierter sind, ich wüsste nicht wie ich die richtig implementiere.
Mir ist z.B. nicht klar, wie sich Funktionen zur Originalgröße auf die einzelnen Grafiken beziehen lassen.
Einfach sowas einzufügen dürfte nicht helfen:


Code:
<img src="yourImage.jpg" border="0" height="real_height" width="real_width"
    onload="resizeImg(this, 200, 100);">

<script type="text/javascript">
function resizeImg(img, height, width) {
    img.height = height;
    img.width = width;
}
</script>

Es gibt ja noch start, load and draw, ich denke dort muss das irgendwie mit rein? Es muss doch möglich sein, mit wenigen Befehlen die Originalabmessungen einzufügen... Kann mir jemand weiterhelfen?

Viele Grüße, Prometheus


EDIT:

Ich konnte meine Probleme über Nacht teilweise lösen, weil ich in einem anderen Tutorial mit etwas anderem Thema was aus dem Code abschauen konnte. Meine Lösung war, im style-Abschnitt Folgendes zu ergänzen:
Code:
body { overflow: hidden; }
        body {
            width: 100%;
            height: 100%;
            padding: 0;
            border: 0;
            margin: 0;

padding und margin haben das Problem des Randes (fast) gelöst, border war mein Versuch, der nichts weiter verbesserte. Grund: Unten wird ein dicker Streifen vom Hintergrund abgeschnitten, das sieht man erst im Vollbild. Leider ga es auch einen weißen Streifen unten, bei Mausrad und Leertaste... es "wobbelte".
Das habe ich so fast komplett gedämpft:
Code:
window.onscroll = function () {window.scrollTo(0, 0);} 


Den kleinen weißen Spalt, der trotzdem unten aufblitzte, entfernte bzw. verdeckte ich mit +1 Pixel, ohne das eine Laufleiste verursacht wurde:
Code:
canvas.height = window.innerHeight +1;


Da die Leertaste später zum Abfeuern verwendet wird, war es ganz lustig, das der Hintergrund bei "erschüttert" wird. Habe es noch probiert mit schwarzem Hintergrund, das geht auch.

Leider tauchte aber auch mit Veränderung der Fenstergröße oder dem Vollbild eine tote Laufleiste auf. Ich fand dann noch das, jetzt bewegt sich nichts mehr, es gibt auch keine Laufleisten-Fehler mehr:
Code:
body { overflow: hidden; }

Nur im Vollbild ist unten nach wie vor ein weißer fetter Balken... Ausserdem gibts ein "Problem" bei den Fenstergrößen, mit der Anpassung. Egal. Ganz am Ende wäre das auch noch einen Versuch wert, ist erstmal nicht wichtig.


Was mich immer noch (akademisch) interessiert: Wie kann man Grafiken in Originalgröße laden bzw. anzeigen lassen?

Soweit erstmal. Danke fürs lesen schonmal. Smile


PS: Ich bin am WE vermutlich weg und antworte ggf. erst nächste Woche.

Drucke diesen Beitrag

  Aus-einklappen + dynamisch Felder hinzufügen
Geschrieben von: DHelm - 18.11.2022, 09:52 - Forum: Javascript - Antworten (1)

Hallo zusammen,

In meinem Code möchte ich dynamisch Felder hinzufügen, welche auch ein und ausklappbar sind - aktuell wird sobald ich auf "löschen" klicke, werden ALLE zuvor hinzugefügten input Felder gelöscht, das soll natürlich nicht so sein, sondern die Felder gelöscht werden bei denen der Löschen-Button geklickt wurde

HTML Code:
<div class="form-row">
                                <div class="form-group col-md-6">
                                    <label for="inputEmploymentTitle"></label>
                                    <input type="text" name="employmentTitle[]" class="form-control"
                                        id="inputEmploymentTitle" onkeyup="showEmploymentTitle()" placeholder="Titel" />
                                    <span class="border"></span>
                                </div>
                                <div class="form-group col-md-6">
                                    <label for="inputEmploymentDauer"></label>
                                    <input type="text" name="employmentDauer[]" class="form-control"
                                        id="inputEmploymentDauer" onkeyup="showEmploymentDauer()" placeholder="Dauer" />
                                    <span class="border"></span>
                                </div>
                                <div class="form-group col-md-12">
                                    <label for="inputEmployment"></label>
                                    <textarea type="text" name="employment[]" class="form-control" id="inputEmployment"
                                        onkeyup="showEmployment()" placeholder="mehr Informationen"></textarea>
                                </div>
                            </div>
                            <div class="container1">

                            </div>
                        <button class="add_form_field_Employment">hinzufügen</button>


JS Code:
 $(document).ready(function () {
        var max_fields = 10;
        var wrapper = $(".container1");
        var add_button = $(".add_form_field_Employment");

        var x = 1;
        $(add_button).click(function (e) {
            e.preventDefault();
            if (x < max_fields) {
                x++;
                $(wrapper).append('<div class="form-row"><div class="form-group col-md-6"><label for="inputEmploymentTitle"></label><input type="text" name="employmentTitle[]" class="form-control" id="inputEmploymentTitle"onkeyup="showEmploymentTitle()" placeholder="Titel" /><span class="border"></span></div><div class="form-group col-md-6"><label for="inputEmploymentDauer"></label><input type="text" name="employmentDauer[]" class="form-control" id="inputEmploymentDauer"onkeyup="showEmploymentDauer()" placeholder="Dauer" /><span class="border"></span></div><div class="form-group col-md-12"><label for="inputEmployment"></label><textarea type="text" name="employment[]" class="form-control" id="inputEmployment"onkeyup="showEmployment()" placeholder="mehr Informationen"></textarea></div></div></div><a href="#" class="delete">entfernen</a>'); //add input box
            } else {
                alert('Maximale Anzahl erreicht')
            }
        });

        $(wrapper).on("click", ".delete", function (e) {
            e.preventDefault();
            $(this).parent('div').remove();
            x--;
        })
    });

Drucke diesen Beitrag

  Aus-einklappen + dynamisch Felder hinzufügen
Geschrieben von: DHelm - 18.11.2022, 09:44 - Forum: Javascript - Antworten (2)

Hallo zusammen,

In meinem Code möchte ich dynamisch Felder hinzufügen, welche auch ein und ausklappbar sind - aktuell wird sobald ich auf "löschen" klicke, werden ALLE zuvor hinzugefügten input Felder gelöscht, das soll natürlich nicht so sein, sondern die Felder gelöscht werden bei denen der Löschen-Button geklickt wurde
HTML Code:


Code:
[color=#808080]<[/color][color=#569cd6]div[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"form-row"[/color][color=#808080]>[/color]
                                [color=#808080]<[/color][color=#569cd6]div[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"form-group col-md-6"[/color][color=#808080]>[/color]
                                    [color=#808080]<[/color][color=#569cd6]label[/color] [color=#9cdcfe]for[/color][color=#d4d4d4]=[/color][color=#ce9178]"inputEmploymentTitle"[/color][color=#808080]></[/color][color=#569cd6]label[/color][color=#808080]>[/color]
                                    [color=#808080]<[/color][color=#569cd6]input[/color] [color=#9cdcfe]type[/color][color=#d4d4d4]=[/color][color=#ce9178]"text"[/color] [color=#9cdcfe]name[/color][color=#d4d4d4]=[/color][color=#ce9178]"employmentTitle[]"[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"form-control"[/color]
                                        [color=#9cdcfe]id[/color][color=#d4d4d4]=[/color][color=#ce9178]"inputEmploymentTitle"[/color] [color=#9cdcfe]onkeyup[/color][color=#d4d4d4]=[/color][color=#ce9178]"[/color][color=#dcdcaa]showEmploymentTitle[/color][color=#ce9178]()[/color][color=#ce9178]"[/color] [color=#9cdcfe]placeholder[/color][color=#d4d4d4]=[/color][color=#ce9178]"Titel"[/color] [color=#808080]/>[/color]
                                    [color=#808080]<[/color][color=#569cd6]span[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"border"[/color][color=#808080]></[/color][color=#569cd6]span[/color][color=#808080]>[/color]
                                [color=#808080]</[/color][color=#569cd6]div[/color][color=#808080]>[/color]
                                [color=#808080]<[/color][color=#569cd6]div[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"form-group col-md-6"[/color][color=#808080]>[/color]
                                    [color=#808080]<[/color][color=#569cd6]label[/color] [color=#9cdcfe]for[/color][color=#d4d4d4]=[/color][color=#ce9178]"inputEmploymentDauer"[/color][color=#808080]></[/color][color=#569cd6]label[/color][color=#808080]>[/color]
                                    [color=#808080]<[/color][color=#569cd6]input[/color] [color=#9cdcfe]type[/color][color=#d4d4d4]=[/color][color=#ce9178]"text"[/color] [color=#9cdcfe]name[/color][color=#d4d4d4]=[/color][color=#ce9178]"employmentDauer[]"[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"form-control"[/color]
                                        [color=#9cdcfe]id[/color][color=#d4d4d4]=[/color][color=#ce9178]"inputEmploymentDauer"[/color] [color=#9cdcfe]onkeyup[/color][color=#d4d4d4]=[/color][color=#ce9178]"[/color][color=#dcdcaa]showEmploymentDauer[/color][color=#ce9178]()[/color][color=#ce9178]"[/color] [color=#9cdcfe]placeholder[/color][color=#d4d4d4]=[/color][color=#ce9178]"Dauer"[/color] [color=#808080]/>[/color]
                                    [color=#808080]<[/color][color=#569cd6]span[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"border"[/color][color=#808080]></[/color][color=#569cd6]span[/color][color=#808080]>[/color]
                                [color=#808080]</[/color][color=#569cd6]div[/color][color=#808080]>[/color]
                                [color=#808080]<[/color][color=#569cd6]div[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"form-group col-md-12"[/color][color=#808080]>[/color]
                                    [color=#808080]<[/color][color=#569cd6]label[/color] [color=#9cdcfe]for[/color][color=#d4d4d4]=[/color][color=#ce9178]"inputEmployment"[/color][color=#808080]></[/color][color=#569cd6]label[/color][color=#808080]>[/color]
                                    [color=#808080]<[/color][color=#569cd6]textarea[/color] [color=#9cdcfe]type[/color][color=#d4d4d4]=[/color][color=#ce9178]"text"[/color] [color=#9cdcfe]name[/color][color=#d4d4d4]=[/color][color=#ce9178]"employment[]"[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"form-control"[/color] [color=#9cdcfe]id[/color][color=#d4d4d4]=[/color][color=#ce9178]"inputEmployment"[/color]
                                        [color=#9cdcfe]onkeyup[/color][color=#d4d4d4]=[/color][color=#ce9178]"[/color][color=#dcdcaa]showEmployment[/color][color=#ce9178]()[/color][color=#ce9178]"[/color] [color=#9cdcfe]placeholder[/color][color=#d4d4d4]=[/color][color=#ce9178]"mehr Informationen"[/color][color=#808080]></[/color][color=#569cd6]textarea[/color][color=#808080]>[/color]
                                [color=#808080]</[/color][color=#569cd6]div[/color][color=#808080]>[/color]
                            [color=#808080]</[/color][color=#569cd6]div[/color][color=#808080]>[/color]
                            [color=#808080]<[/color][color=#569cd6]div[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"container1"[/color][color=#808080]>[/color]

                            [color=#808080]</[/color][color=#569cd6]div[/color][color=#808080]>[/color]
                        [color=#808080]<[/color][color=#569cd6]button[/color] [color=#9cdcfe]class[/color][color=#d4d4d4]=[/color][color=#ce9178]"add_form_field_Employment"[/color][color=#808080]>[/color][color=#d4d4d4]hinzufügen[/color][color=#808080]</[/color][color=#569cd6]button[/color][color=#808080]>[/color]


JSCode:

Code:
[color=#dcdcaa]$[/color][color=#d4d4d4]([/color][color=#9cdcfe]document[/color][color=#d4d4d4]).[/color][color=#dcdcaa]ready[/color][color=#d4d4d4]([/color][color=#569cd6]function[/color][color=#d4d4d4] () {[/color]
        [color=#569cd6]var[/color] [color=#9cdcfe]max_fields[/color][color=#d4d4d4] = [/color][color=#b5cea8]10[/color][color=#d4d4d4];[/color]
        [color=#569cd6]var[/color] [color=#9cdcfe]wrapper[/color][color=#d4d4d4] = [/color][color=#dcdcaa]$[/color][color=#d4d4d4]([/color][color=#ce9178]".container1"[/color][color=#d4d4d4]);[/color]
        [color=#569cd6]var[/color] [color=#9cdcfe]add_button[/color][color=#d4d4d4] = [/color][color=#dcdcaa]$[/color][color=#d4d4d4]([/color][color=#ce9178]".add_form_field_Employment"[/color][color=#d4d4d4]);[/color]

        [color=#569cd6]var[/color] [color=#9cdcfe]x[/color][color=#d4d4d4] = [/color][color=#b5cea8]1[/color][color=#d4d4d4];[/color]
        [color=#dcdcaa]$[/color][color=#d4d4d4]([/color][color=#9cdcfe]add_button[/color][color=#d4d4d4]).[/color][color=#dcdcaa]click[/color][color=#d4d4d4]([/color][color=#569cd6]function[/color][color=#d4d4d4] ([/color][color=#9cdcfe]e[/color][color=#d4d4d4]) {[/color]
            [color=#9cdcfe]e[/color][color=#d4d4d4].[/color][color=#dcdcaa]preventDefault[/color][color=#d4d4d4]();[/color]
            [color=#c586c0]if[/color][color=#d4d4d4] ([/color][color=#9cdcfe]x[/color][color=#d4d4d4] < [/color][color=#9cdcfe]max_fields[/color][color=#d4d4d4]) {[/color]
                [color=#9cdcfe]x[/color][color=#d4d4d4]++;[/color]
                [color=#dcdcaa]$[/color][color=#d4d4d4]([/color][color=#9cdcfe]wrapper[/color][color=#d4d4d4]).[/color][color=#dcdcaa]append[/color][color=#d4d4d4]([/color][color=#ce9178]'<div class="form-row"><div class="form-group col-md-6"><label for="inputEmploymentTitle"></label><input type="text" name="employmentTitle[]" class="form-control" id="inputEmploymentTitle"onkeyup="showEmploymentTitle()" placeholder="Titel" /><span class="border"></span></div><div class="form-group col-md-6"><label for="inputEmploymentDauer"></label><input type="text" name="employmentDauer[]" class="form-control" id="inputEmploymentDauer"onkeyup="showEmploymentDauer()" placeholder="Dauer" /><span class="border"></span></div><div class="form-group col-md-12"><label for="inputEmployment"></label><textarea type="text" name="employment[]" class="form-control" id="inputEmployment"onkeyup="showEmployment()" placeholder="mehr Informationen"></textarea></div></div></div><a href="#" class="delete">entfernen</a>'[/color][color=#d4d4d4]); [/color][color=#6a9955]//add input box[/color]
[color=#d4d4d4]            } [/color][color=#c586c0]else[/color][color=#d4d4d4] {[/color]
                [color=#dcdcaa]alert[/color][color=#d4d4d4]([/color][color=#ce9178]'Maximale Anzahl erreicht'[/color][color=#d4d4d4])[/color]
[color=#d4d4d4]            }[/color]
[color=#d4d4d4]        });[/color]

        [color=#dcdcaa]$[/color][color=#d4d4d4]([/color][color=#9cdcfe]wrapper[/color][color=#d4d4d4]).[/color][color=#dcdcaa]on[/color][color=#d4d4d4]([/color][color=#ce9178]"click"[/color][color=#d4d4d4], [/color][color=#ce9178]".delete"[/color][color=#d4d4d4], [/color][color=#569cd6]function[/color][color=#d4d4d4] ([/color][color=#9cdcfe]e[/color][color=#d4d4d4]) {[/color]
            [color=#9cdcfe]e[/color][color=#d4d4d4].[/color][color=#dcdcaa]preventDefault[/color][color=#d4d4d4]();[/color]
            [color=#dcdcaa]$[/color][color=#d4d4d4]([/color][color=#569cd6]this[/color][color=#d4d4d4]).[/color][color=#dcdcaa]parent[/color][color=#d4d4d4]([/color][color=#ce9178]'div'[/color][color=#d4d4d4]).[/color][color=#dcdcaa]remove[/color][color=#d4d4d4]();[/color]
            [color=#9cdcfe]x[/color][color=#d4d4d4]--;[/color]
[color=#d4d4d4]        })[/color]
[color=#d4d4d4]    });[/color]

Drucke diesen Beitrag

  JavaScript für Sprachumleitung funktioniert nicht
Geschrieben von: alhai007 - 15.11.2022, 12:16 - Forum: Javascript - Antworten (4)

Hallo,

es geht um eine mehrsprachige Website, die ich jeweils automatisch auf die jeweilige eingestellte Browsersprache weiterleiten will. Grundlegend ist deutsch eingestellt, dann eben noch /it/ + /en/ - italiensich und englisch. Das folgende Script funkt in der Testumgebung aber eben nicht in der Liveschaltung. In der Liveschaltung wiederholen sich einfach die Alert-Konstrukte wie wenn eine Schleife auf unendlich laufen würde. Nehme ich die Alertkonstrukte heraus ( waren ohnehin nur eine Hilfsfunktion ) bauen sich mehrfach Browsertabs von der ständigen Wiederholung auf. ????


Hier mal das Script, vllt. kann jemand helfen! VG und schon mal danke.

<script type="text/javascript">

var userLang = navigator.language || navigator.userLanguage;
alert ("The language is: " + userLang);

if ( userLang=="de") {
alert ( " DIE SEITE wird in Deutsch geladen");
document.location.href='https://domain.com';
}

else if ( userLang=="en" || userLang=="en-US") {
alert ( " DIE SEITE wird in Englisch geladen");
document.location.href='https://domain.com/en/';
}

else if ( userLang=="it") {
alert ( " DIE SEITE wird in Italienisch geladen");
document.location.href='https://domain.com/it/';
}

else {
alert ("This Site here is not available in your language");
document.location.href='https://domain.com';
}

</script>

Drucke diesen Beitrag

  PHP Hook für Redirects in WPML >> Wordpress
Geschrieben von: alhai007 - 15.11.2022, 12:11 - Forum: Php - Antworten (1)

Hallo,
bin Anfänger in PHP, verstehe schon ein wenig vom Codieren in PHP, aber halt noch nicht so ganz.
Möchte beim Plugin WPML ( Wordpress ) einen Hook einhängen, der sich automatisch an der Browsersprache orientiert. Also es sind insgesamt 3 Sprachen, dt ist voreingestellt als Hauptsprache. Wenn jetzt jemand eine Browsersprache in italienisch vorweist soll eben auf /it/ umgeleitet werden, bei englisch entsprechend. Die Hauptdomain bleibt deutsch. Hier mal der Hook, der von WPML angeboten wird. Die Frage wer kann mir helfen bzw. Tipps geben, den Hook auszuprogrammieren. Es geht hier darum, die $params nach meinen oben erwünschten Vorhaben richtig zu codieren - auch z.B. für englisch die Browsersprache en_us ... zu berücksichtigen. Danke schon mal im Vorfeld für Eure Mühe.

function example_callback( $params ) {
global $post;
// Redirect the French language to the home page if the current page ID is 123
if ( $post->ID === 123 ) {
$params['pageLanguage'] = 'en';
$params['languageUrls'] = [ 'fr' => 'http://example.com/fr/' ];
}
return $params;
}
add_filter( 'wpml_browser_redirect_language_params', 'example_callback' );

Drucke diesen Beitrag

  Mittels JavaScript ein Span Element anklicken
Geschrieben von: use - 14.11.2022, 09:32 - Forum: Javascript - Antworten (2)

Hallo Zusammen,



ich habe folegenden HTML Code:



Code:
<div class="row toggle-demo">
    <label class="switch-light-gray switch-holo-gray">
        <input type="checkbox" id="myCheckBox" onClick="fnCheckBox()">

        <span class="large-3 columns float-left">
            <span onclick="Start()" id="spanStart">Start</span>
            <span onclick="Stop()" id="spanStop">Stop</span>
            <a></a>
        </span>
    </label>
</div>




Mittels eines Buttons führe ich folgenden JavaScript Code aus:



Code:
document.getElementById('myCheckBox').click();




Dann wird die Funktion der Checkbox "fnCheckBox ausgeführt. Das gleiche würde ich jetzt gerne für eins der Span Elemente machen, allerdings wird bei einem Code:




Code:
document.getElementById('spanStart').click()



nicht die Funktion Start() ausgeführt.


Gibt es eine Möglichkeit, die Funktion, die im Span hinterlegt ist auszuführen, wenn der Span über JavaScript Code angeklickt wird? (Nicht durch einen Mausklick)




Vielen Dank

Drucke diesen Beitrag

  Ein <select> aus einer Verkettung als Ausgabe darstellen
Geschrieben von: wuppti - 13.11.2022, 10:47 - Forum: Javascript - Antworten (9)

Hallo zusammen,
meine Kenntnisse in Javascript sind als "extrem Beginner" einzustufen, von daher benötige ich bitte Hilfe oder Denkanstöße

Es geht um ein Formularscript, indem ich ein mehrfach verkettetes Javascript einsetzen möchte. das Grundgerüst ist nicht von mir, dies habe ich durch Sucherei im Netz gefunden und entsprechend bis zu dem heutigen Stand umgebaut. 
Jetzt stellt sich mir die Frage, wie ich den "Preis" nicht als <select> sondern als feste direkte Ausgabe in dem Formular darstelle.
Ich möchte also nicht in dem Preisfeld "bitte wählen" stehen haben sondern sofort den Preis, der ja jeder Anwendung zugeordnet ist. 
Wie bewerkstellige ich das ?
Versuche, in dem Formular mit <input> oder <ng-model> den Wert zu bekommen, sind kläglich gescheitert.

Ich bedanke mich bereits an dieser Stelle für alle Vorschläge oder Lösungen, die mein Problem fixen.

hier das script und im Anschluss das Formular als Teil Auszug

Code:
<noscript><div align="center" id="nojava">
Um den vollen Leistungsumfang unseres Shops nutzen zu können, aktivieren Sie bitte JavaScript in Ihren Browsereinstellungen.</div>
<br />
</noscript>
<script>
// Code steht in {...} wegen eines Frickl-Bugs
// Nun denkt der Linter, dies sei ein JSON-String und meckert auch. Bitte ignorieren!
{
    document.addEventListener('DOMContentLoaded', function () {
        const form = document.forms.terminauswahl;
        const gutscheinCtrl = new GutscheinController(form.gutschein);
        const anwendungCtrl = new AnwendungController(form.anwendung, gutscheinCtrl);
        const terminCtrl = new TerminController(form.termin, anwendungCtrl);
        const preisCtrl = new PreisController(form.preis, terminCtrl);
        preisCtrl.addEventListener("change", preisChanged)
        gutscheinCtrl.mapData(data)
    
        function preisChanged(event) {
            let preisCtrl = event.target;
            let terminCtrl = preisCtrl.parentNode;
            let anwendungCtrl = terminCtrl.parentNode;
            let gutscheinCtrl = anwendungCtrl.parentNode;
            let ausgabe = document.getElementById('auswahl');
            ausgabe.textContent = preisCtrl.selectedKey != ""
                ?    `${gutscheinCtrl.selectedKey}:${gutscheinCtrl.selectedObject.name} / `+
                    `${anwendungCtrl.selectedKey}:${anwendungCtrl.selectedObject.thema} / ` +
                    `${terminCtrl.selectedKey}:${terminCtrl.selectedObject.zeit} / ` +
                    `${preisCtrl.selectedKey}:${preisCtrl.selectedObject.euro}`     :    "";
        }
    });

        class SelectionController extends EventTarget {
        constructor(selectElement, parentNode = null) {
            super();        // Pflicht: Konstruktor der Superklasse aufrufen
            if (!(selectElement instanceof HTMLSelectElement)) {
                throw new Error("Controller-Objekt benötigt ein select Element als ersten Parameter");
            }
            if (parentNode && !(parentNode instanceof SelectionController)) {
                throw new Error("Controller-Objekt benötigt einen SelectionController als zweiten Parameter");
            }

            this.selectElement = selectElement;
            this.parentNode = parentNode;

            this.selectElement.addEventListener("change", event => this._handleChangeEvent(event))
            if (parentNode) {
                parentNode.addEventListener("change", event => this.mapData(event.selectedObject));
            }
        }

        mapData(dataSource) {
            this.dataSource = dataSource;
   
            if (typeof this.getValueList == "function") {

                removeOptions(this.selectElement);

                const options = dataSource && this.getValueList(dataSource);
                if (!options || !options.length) {
                    setToDisabled(this.selectElement)
                } else {
                    setToEnabled(this.selectElement, options);
                }
            }

            this.selectElement.dispatchEvent(new Event("change"));

            function removeOptions(selectElement) {
                while (selectElement.length > 0)
                    selectElement.remove(0);
            }

            function setToDisabled(selectElement) {
                addOption(selectElement, "", "------");
                selectElement.disabled = true;
            }

            function setToEnabled(selectElement, options) {
                addOption(selectElement, "", "Bitte wählen:");

                for (var optionData of options) {
                    addOption(selectElement, optionData.value, optionData.text);
                }
                selectElement.disabled = false;
            }
   
            function addOption(selectElement, value, text) {
                let option = document.createElement("option");
                option.value = value;
                option.text = text
                selectElement.add(option);
            }
        }

        getValue(key) {
            throw new TypeError("Die abstrakte Methode 'getValue' wurde nicht implementiert!");
        }

        get selectedKey() {
            return this.selectElement.value;
        }
    
        get selectedObject() {
            return this.dataSource ? this.getValue(this.dataSource, this.selectElement.value) : null;
        }

        _handleChangeEvent(event) {
            let nodeChangeEvent = new Event("change");
            nodeChangeEvent.selectedObject = this.selectedObject;
            this.dispatchEvent(nodeChangeEvent);
        }
    }

    class GutscheinController extends SelectionController {
        constructor(selectElement) {
            super(selectElement, null);
        }

        getValue(quelle, gutscheinId) {
            return quelle.find(gutschein => gutschein.id == gutscheinId); 
        }
    }

    class AnwendungController extends SelectionController {
        constructor(selectElement, parentController) {
        super(selectElement, parentController);
        }
        getValueList(gutschein) {
            return gutschein.massagen.map(anwendung => ({ value: anwendung.nummer, text: anwendung.thema }));
        }
        getValue(gutschein, anwendungNr) {
            return gutschein.massagen.find(anwendung => anwendung.nummer == anwendungNr);
        }
    }

    class TerminController extends SelectionController {
        constructor(selectElement, parentController) {
            super(selectElement, parentController);
        }
        getValueList(anwendung) {
            return anwendung.termine.map(termin => ({ value: termin.id, text: termin.zeit }));
        }
        getValue(anwendung, terminId) {
            return anwendung.termine.find(termin => termin.id == terminId);
        }
    }
   class PreisController extends SelectionController {
        constructor(selectElement, parentController) {
            super(selectElement, parentController);
        }
        getValueList(termin) {
            return termin.preise.map(preis => ({
                value: preis.id,
                text: preis.euro
            }));
        }
        getValue(termin, preisId) {
            return termin.preise.find(preis => preis.id == preisId);
        }
    }
}
var data = [
    {    id: "Massage",
        name: "Massage-Angebote",
        massagen: [
            {    nummer: "Thai Hand-, oder Kopf/Gesichtsmassage",
                thema: "Thai Hand-, oder Kopf/Gesichtsmassage",
                termine: [
                    { id: "30 min", zeit: "30 min",
                                preise: [
                                    { id: "30,00 €", euro: "30,00 €" }
                                            ]
                                    }
                         ]
            },
            {    nummer: "Thai Schulter-/Nackenmassage",
                thema: "Thai Schulter-/Nackenmassage",
                termine: [
                    { id: "30 min", zeit: "30 min",
                                preise: [
                                    { id: "30,00 €", euro: "30,00 €" }
                                            ]
                                    },
                    { id: "60 min", zeit: "60 min",
                                preise: [
                                    { id: "49,00 €", euro: "49,00 €" }
                                            ]
                                    }
                ]
            },
        ]
    }
];
</script>


PHP-Code:
<form action="./php/gutschein.php" method="post" name="auswahl">
    <
form class="needs-validation" novalidate>
    <
div class="form-row">
        <
div class="form-group col-md-12">
            <
label class="control-label">Gutschein für:
                <
select id="gutschein" name="Gutschein" class="form-control" value="" required>
                    <
option value="">Bitte wählen:</option>
                    <
option value="Massage">Massage-Angebote</option>
                    <
option value="xxxx">xxx</option>
                    <
option value="yyyy">yyyy</option>
                    <
option value="zzzz">zzzz</option>
                </
select>
            </
label>
            <
label class="control-label">Anwendung:
                <
select id="anwendung" name="Anwendung" class="form-control" disabled value="" required>
                    <
option value="">------</option>
                </
select>
            </
label>
            <
label class="control-label">Dauer:
                <
select id="termin" name="Dauer" class="form-control" disabled value="" type="hidden">
                    <
option value="">------</option>
                </
select>
            </
label>
                        <label class="control-label">Preis:
                <
select id="preis" name="Preis" class="form-control" disabled value="" type="hidden">
                    <
option value="">------</option>
                </
select>
            </
label>
        </
div>
    </
div>
</
form>
</
form

Drucke diesen Beitrag

  JS replace
Geschrieben von: manfred.prefi@freenet.de - 08.11.2022, 23:59 - Forum: Javascript - Antworten (3)

Hallo guten Abend,
ich habe eine Web-site, die aus ca 20 html-Seiten besteht, die hauptsächlich aus Fließext unter p-class-bericht bestehen.
Innerhalb des Textes sind an verschiedenen Stellen Platzhalter in Form von "aa-12", "aa-13" usw. enthalten. Diese Platzhalter möchte ich mittels JS durch html-tags (img-tags) ersetzen.
Wie kann ich das bewerkstelligen? Der Aufbau der img-tags ist gelöst, es geht nur um das Ersetzen der Platzhalter durch die Tags.
Vielen Dank im Voraus für jede Hilfe - auch der Hinweis, dass es nicht geht.

Drucke diesen Beitrag