ユーザーにいくつかのデータを(後で変更できるフィールドを使用して)尋ねる方法、データベースに保存してから収集したデータの一部をすべてのdbコンテンツがページソースコードに公開されないようにするページには、すべてのデータを再ロードした後、ここでopa:フォームを介してユーザーの詳細を問い合わせてデータベースに保存する
は、完全な例ですページのソースに表示されている:
import stdlib.crypto
type user= {md5sum: string; name: string; email: string; is_achy: bool }
db /users : stringmap(user);
db /users[_]/is_achy = {false}
setup_page()=
(
<div id=#users>
<div class="container">
<table id=#lista >
<tr>
<th>Name</th>
<th>Headache?</th>
</tr>
{list_db()}
</table>
</div>
</div>
<div class="container">
<p>
Not on the list? Add it here.
</p>
<p>
<input id=#username value="default"/>
<input id=#email_address value="[email protected]/>
<input type="button" value="Add" onclick={_ -> add_user()} />
</p>
</div>
)
list_db()=
(
List.map(
users -> <tr> <th>{users.name}</th> <th><input type="checkbox" id=#{users.md5sum} onclick={_ -> is_achy(users.md5sum)}/></th></tr>, StringMap.To.val_list(/users)
)
)
add_user() =
(
name = Dom.get_value(#username)
md5sum = Crypto.Hash.md5(name)
email = Dom.get_value(#email_address)
if name != "" then
do /users[md5sum] <- {~md5sum ~name ~email is_achy=false}
Dom.transform([{Dom.select_body()} <- setup_page()])
)
is_achy(md5sum) =
(
/users[md5sum]/is_achy <- Dom.is_checked(Dom.select_id(md5sum))
)
server = one_page_server("Achy head?", setup_page)
私は完全に理解していません:いつこのJSがページに表示されますか?明らかに、ページの最初のビューではありません。あなたは、(完全ではあるが最小限の)実例を投稿し、このJSコードを見るためにあなたが何をしているのかを説明することはできますか? – akoprowski
@akoprowski申し訳ありません、ちょっとした改造を行い、完全な例を追加しました。データベースに追加してページをリロードした後、ソースコードにはdbのすべての値を含むjavascriptが含まれています。私はそれがis_achy()関数と関係があることを認識しました。なぜなら、それがなければ何もソースに表示されないからです。それは私が(元気に)元の投稿の方程式から抜け出したものでした。 – ee2b45bd06e7c8181aef3824ec9da3