Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
XMLHttpRequest
#3
Ich weiß nicht ob ich den Post hier richtig verstanden habe aber hier meine Version:

Code:
'use strict';
document.addEventListener('DOMContentLoaded', init);
var feld1, feld2, feld3;
function init() {
    feld1 = document.getElementsByName('feld1')[0];
    feld2 = document.getElementsByName('feld2')[0];
    feld3 = document.getElementsByName('feld3')[0];
    feld2.setAttribute('readonly', 'readonly');
    feld2.style.display = 'none';
    feld3.setAttribute('readonly', 'readonly');
    feld3.style.display = 'none';
    feld1.addEventListener('input', feld1F);
}
function feld1F() {
    let xhr = new XMLHttpRequest();
    let myFormData = new FormData();
    myFormData.append('feld1', feld1.value);
    xhr.open('POST', 'meinPHP.php');
    xhr.addEventListener('readystatechange', () => {
        if(this.status==200 && this.readyState==4) {
            currentContent = xhr.responseText;
            feld1.setAttribute('readonly', 'readonly');
            feld2.innerHTML = currentContent;           
            feld2.addEventListener('input', feld2F);
        }
    });
    xhr.send(myFormData);
}
function feld2F() {
    let xhr = new XMLHttpRequest();
    let myFormData = new FormData();
    myFormData.append('feld2', feld2.value);
    xhr.open('POST', 'meinPHP.php');
    xhr.addEventListener('readystatechange', () => {
        if(this.status==200 && this.readyState==4) {
            currentContent = xhr.responseText;
            feld2.setAttribute('readonly', 'readonly');
            feld3.innerHTML = currentContent;           
            feld3.addEventListener('input', feld2F);
        }
    });
    xhr.send(myFormData);
}
function feld3F() {
    let xhr = new XMLHttpRequest();
    let myFormData = new FormData();
    myFormData.append('feld3', feld3.value);
    xhr.open('POST', 'meinPHP.php');
    xhr.addEventListener('readystatechange', () => {
        if(this.status==200 && this.readyState==4) {
            currentContent = xhr.responseText;
            // Hier kommt der Rest hin usw.
        }
    });
    xhr.send(myFormData);
}

Code:
<?php
require_once('datenbank.php');
if(!$link) {
    die('Keine Datenbankanbindung!');
}
$ausgabe = "";
if(isset($_POST['q']) && $_POST['q']!='') {
    $q = htmlsepcialchars($_POST['q'], ENT_QUOTES);
    $query="SELECT * FROM `artikel_id` WHERE `Material`='Anodenfolie' and Lieferant=?";
    if($stmt = $link->prepare($query)) {
        $stmt->bind_param();
        $stmt->execute();
        if($result = $stmt->get_result()) {
            while($row = $result->fetch_array(MYSQLI_BOTH)) {
                $ausgabe .= "\t<option ";
                $ausgabe .= "name=\"" . $row['Bezeichnung'] . "\">";
                $ausgabe .= $row['Beschreibung'] . "</option>\n";
            }
            echo $ausgabe;
        }
    }
}
?>

Aus Sicherheitsgründen solltest du $_POST und $_GET immer validieren und gebenfalls escapen. Es kann nicht ausgeschlossen werden, dass der Besucher der Webseite versucht via Codeinjection deine Seite zu beschädigen oder Daten abzugreifen. Dazu solltest du in PHP Prepared Statements verwenden. Das macht das ganze sicherer von Angriffen von Außen. SQL-Injections sind sehr böse und können Inhalte abgreifen und/oder zerstören.

Es gibt hier noch mehr Sicherheitsmechanismen und Sicherheitslösungen, um PHP noch sicherer machen könnte, aber das würde den Rahmen des Threeads hier sprengen.

Ich hoffe der Code hilft dir weiter bei deiner Arbeit. Viel Erfolg!

VG rzscout
Zitieren


Nachrichten in diesem Thema
XMLHttpRequest - von kast1180 - 24.03.2022, 16:34
RE: XMLHttpRequest - von admin - 03.04.2022, 16:40
RE: XMLHttpRequest - von rzscout - 18.06.2022, 02:44

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste