Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 43.555
» Neuestes Mitglied: ynckprn
» Foren-Themen: 523
» Foren-Beiträge: 2.129

Komplettstatistiken

Benutzer Online
Momentan sind 163 Benutzer online
» 1 Mitglieder
» 161 Gäste
Bing, Sempervivum

Aktive Themen
Buy Cenforce 150 Mg [20% ...
Forum: Javascript
Letzter Beitrag: ezraallen
Vor 8 Stunden
» Antworten: 0
» Ansichten: 10
Find Sexy Womans in your ...
Forum: Browser-Erweiterungen
Letzter Beitrag: GrisDris
Vor 11 Stunden
» Antworten: 0
» Ansichten: 9
Alert Fenster
Forum: Javascript
Letzter Beitrag: Sempervivum
Gestern, 16:28
» Antworten: 11
» Ansichten: 313
What is the effect of Fil...
Forum: Javascript
Letzter Beitrag: Duratiatabs
Gestern, 08:44
» Antworten: 0
» Ansichten: 17
Download Free Fire MAX la...
Forum: Spam-Meldungen
Letzter Beitrag: iamrick9211
Gestern, 06:05
» Antworten: 0
» Ansichten: 17
The Ultimate Guide to Fin...
Forum: Ankündigungen,Neuigkeiten
Letzter Beitrag: lisamegan
Gestern, 05:21
» Antworten: 0
» Ansichten: 19
Let luck be your guide, e...
Forum: CoffeeScript
Letzter Beitrag: jessicadonnelly
19.05.2024, 16:50
» Antworten: 0
» Ansichten: 33
Ajax Abfrage
Forum: Php
Letzter Beitrag: americansoutfit
18.05.2024, 09:45
» Antworten: 4
» Ansichten: 718
"Dimmerprofil" coden
Forum: Javascript
Letzter Beitrag: MindCodeAI
16.05.2024, 22:50
» Antworten: 0
» Ansichten: 62
Hall an alle
Forum: Seid ihr neu ?
Letzter Beitrag: Andreas
08.05.2024, 14:32
» Antworten: 0
» Ansichten: 105

  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

  Java Script Websocket closes immediately after creation
Geschrieben von: DavidB - 08.11.2022, 14:56 - Forum: Javascript - Antworten (1)

Hey, 
I'm relatively new to the java script world,
I'm trying to send a message with a java script websocket.

Code:
var ws = new WebSocket("ws://".concat(host_ip.concat(":8765")));

document.addEventListener('keyup', (e) => {
        //If I create the websocket here it works
        //var ws = new WebSocket("ws://".concat(host_ip.concat(":8765")));
        ws.onopen = function(event){
            console.log(ws);
            ws.send("TestMessage");
        }
});
If I create the websocket outside the addEventListener method the connection is closed (ready state 3)
when I try to send "TestMessage" by releasing the 'keyup' key.

If I create the websocket within the addEventListener method everything works just fine.
However when I'm sending too many messages successively the connection stops.

Has someone an idea why it does not work in the first case? Is this maybe some js variable out of scope error?

Drucke diesen Beitrag

  Java Script Websocket closes connection directly after creation
Geschrieben von: JS_learner - 08.11.2022, 13:23 - Forum: Javascript - Keine Antworten

Hey I'm relatively new to the java script world,
I'm trying to send a message with a java script websocket.

Code:
var ws = new WebSocket("ws://192.168.179.52:8765"));
document.addEventListener('keyup', (e) => {
    //when I create the websocket here it works
    //var ws = new WebSocket("ws://192.168.179.52:8765")));
    ws.onopen = function(event){
            console.log(ws);
            ws.send("TestMessage");
    }
});

If I create the websocket variable outside of my addEventListener the websocket 
will be closed immediately (ready state 3) when I try to send "TestMessage".
If I create the websocket within the addEventListener method everything works just fine.
However when I'm sending too many messages successively the connection stops.
Has someone an idea why it does not work in the first case? Is this maybe some js variable out of scope error?

Drucke diesen Beitrag

  Soundausgabe mit audio.play() und onmouseover
Geschrieben von: ollelinse - 06.11.2022, 18:58 - Forum: Javascript - Antworten (13)

Hallo in die Runde. Ich erstelle monatlich ein Online-Comic-Kalenderblatt und lasse mir dabei unter Verwendung von JavaScript immer wieder neue Effekte einfallen, die Sache etwas interessanter zu machen. Klappt auch im Prinzip sehr gut - aber jetzt könnte ich mal einen Hinweis gebrauchen. Schon des Öfteren habe ich mit der einfachen Funktion:

function Sound(s) {
  var audio = new Audio(s);
  audio.volume = 0.5;
  audio.play();
}


Soundeffekte bei einem onclick-Ereignis aus einem "area shape" eingebunden. Diesmal soll zusätzlich auch bei mouseover

Drucke diesen Beitrag