2017-05-30 2 views
0

Grundsätzlich habe ich ein Formular mit Checklisteneingaben. Wenn ein Benutzer eine der Eingaben auswählt und das Formular absendet, möchte ich nicht, dass andere Benutzer diese Option mehr sehen können.Ist es durch JavaScript oder PHP möglich, eine Variable dauerhaft auf dem gehosteten Server zu speichern?

Mein erster Gedanke ist es, eine Variable auf dem Server zu speichern, die jedem Eingang zugewiesen wird. Wenn beim Übergeben des Formulars eine Eingabe überprüft wird, ändert sich die zugewiesene Variable. Verwenden Sie dann ein if sonst jede Zeit, die die Seite geladen wird, um jede Variable zu überprüfen, und alle, die sich geändert haben, bleiben verborgen.

Hier ist, was ich bisher mit JavaScript, aber wie erwartet, sind die Änderungen in JavaScript nicht dauerhaft auf dem Server.

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
</head> 
<body> 

<style> 
.hide { 
    display:none; 
} 
.show { 
    display:block; 
} 
</style> 

<h3>Schedule this week's appointment!</h3> 
<form action="form_test.html" onSubmit="reserveApt()"> 
<input type="checkbox" id="check1" name="monday"><label for="monday">Monday</label><br> 
<input type="checkbox" id="check2" name="tuesday"><label for="tuesday">Tuesday</label><br> 
<input type="checkbox" id="check3" name="wednesday"><label for="Wednesday">Wednesday</label><br> 
<input type="checkbox" id="check4" name="thursday"><label for="thursday">Thursday</label><br> 
<input type="checkbox" id="check5" name="friday"><label for="friday">Friday</label><br><br> 

<input type="submit" value="Submit"> 
</form> 

<script> 
function reserveApt() { 
    var input1 = document.getElementById("check1"); 
    var input2 = document.getElementById("check2"); 
    var input3 = document.getElementById("check3"); 
    var input4 = document.getElementById("check4"); 
    var input5 = document.getElementById("check5"); 

    if(input1.checked == true) { 
     input1.className = "hide"; 
     input1.disabled = true; 
    } 
    if(input2.checked == true) { 
     input2.className = "hide"; 
     input2.disabled = true; 
    } 
    if(input3.checked == true) { 
     input3.className = "hide"; 
     input3.disabled = true; 
    } 
    if(input4.checked == true) { 
     input4.className = "hide"; 
     input4.disabled = true; 
    } 
    if(input5.checked == true) { 
     input5.className = "hide"; 
     input5.disabled = true; 
    } 
} 
</script> 
</body> 
</html> 
+5

Ja - Sie könnten es in einer flachen Datei oder einer Datenbank speichern. –

+0

als @JayBlanchard erwähnt, könnten Sie die Variable in einer Datei beibehalten, indem Sie es zwischenspeichern (wenn Sie ein Cachesystem haben) oder in eine Datei schreiben. Beachten Sie, dass dies möglicherweise nicht der Ansatz ist, nach dem Sie suchen. – idelara

Antwort

0

Obwohl es möglich ist, das Problem zu lösen, das Sie mit Ihrem Ansatz zu lösen versuchen, wäre es sehr ineffizient. Verwenden Sie stattdessen persistente Daten. Verwenden Sie so etwas wie MySQL, MariaDB oder sogar MongoDB, um zu verfolgen, welche Tage schon vergeben sind.

Sie könnten eine Tabelle erstellen, die genau das MM-TT-Jahr (Monat-Tag-Jahr) des Tages enthält, an dem das Apartment reserviert werden soll. Dies ermöglicht Ihnen nicht nur, Ihre Reservierungen dauerhaft zu speichern und Ihre bestehenden abzufragen, sondern auch die tatsächlichen Daten zu verknüpfen, so dass Sie Reservierungen an Wochentagen erhalten können, die an ein tatsächliches Datum gebunden sind, nicht nur an einen Tag im Allgemeinen.

Hier sind einige Links, um mit MySQL mit PHP (der berühmtesten Datenbank für PHP) zu beginnen.

https://www.w3schools.com/php/php_mysql_intro.asp https://www.tutorialspoint.com/php/php_and_mysql.htm

Sie müssen wahrscheinlich MySQL auf dem lokalen Rechner installiert werden.

Probieren Sie gebündelte Binärdateien aus, die ein PHP-MySQL-Ökosystem bereitstellen. nur

Fenster (und MariaDB): https://www.apachefriends.org/index.html

Windows und Mac: https://www.mamp.info/en/

Ich hoffe, das hilft!

Prost!

Verwandte Themen