2017-05-30 1 views
0

基本的には、チェックリストの入力フォームがあります。 1人のユーザーが入力の1つを選択してフォームを送信すると、他のユーザーがそのオプションをもう見ることができなくなります。JavaScriptやPHPを使用して、ホストされているサーバーに永続的に変数を保存することは可能ですか?

私の最初の考えは、各入力に割り当てられた変数をサーバーに格納することです。フォームが送信されたときに入力がチェックされると、割り当てられた変数が変更されます。次に、ページが読み込まれたときにいつでも、if変数を使用して、各変数と変更された変数をチェックし、隠れたままにします。

ここまではJavaScriptを使用していますが、期待どおり、JavaScriptの変更はサーバー上で永続的ではありません。

<!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

はい - フラットファイルまたはデータベースに保存できます。 –

+0

@JayBlanchardが述べたように、変数をファイルに保存したり、キャッシングシステムを使用している場合はキャッシングしたり、ファイルに書き込んだりできます。これはあなたが探しているアプローチではないかもしれないことに注意してください。 – idelara

答えて

0

あなたのアプローチで解決しようとしている問題に取り組むことは可能ですが、非常に非効率です。代わりに永続データを使用してください。 MySQL、MariaDB、またはMongoDBのようなものを使用して、どの日がすでに取得されているかを把握してください。

アパートメントを予約する日の正確なmm-dd-yy(月 - 日 - 年)を保持するテーブルを作成できます。これにより、あなたの予約を永久に保存して既存のものを照会することができるだけでなく、実際の日付を結ぶことができるようになるので、一般的な日ではなく、実際の日付に結びついた週の日に予約することができます。

ここでは、MySQL(PHPで最も有名なデータベース)を使い始めるためのいくつかのリンクを紹介します。

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

あなたはおそらく、あなたのローカルマシンにMySQLをインストールする必要があります。

PHP-MySQLエコシステムを提供するバンドルバイナリを試してください。

Windowsのみ(およびMariaDB): https://www.apachefriends.org/index.html

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

私はこれが役に立てば幸い!

乾杯!

関連する問題