0

私はこのコードを持っています:

アプリケーション.js

var userArray = []; 

$(document).ready(function() {
    $("#signupform").submit(function(e) {
        var user = {
            name: $('#pname').val(),
            email: $('#email').val()
        };
        userArray.push(user);
        var html = new EJS({url: 'templates/usershow.ejs'}).render(user);
        var content = document.getElementById('content');
        content.innerHTML = content.innerHTML + html;
        $("#signupform").remove();   
        e.preventDefault();
    });
});

index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>it IT</title>
  <link rel="stylesheet" type="text/css" href="application.css" />
  <script src="jquery.js"></script> 
  <script src="application.js"></script>
  <script type="text/javascript" src="ejs_production.js"></script>
  <!--[if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
</head>
<body>
    <h1>it IT</h1>
    <div id="signup">
        <form id="signupform">
            Name: <input type="text" name="pname" id="pname"><br>
            Email: <input type="text" name="email" id="email"><br>
            <input type="submit" value="sign up">
        </form>
    </div>
    <div id="signin"></div>
    <div id="content"><h2>Name : Email</h2></div>
</body>
</html>

templates/usershow.ejs

<ul>
   <li><%= userArray[userArray.length - 1].name %> - <%= userArray[userArray.length - 1].email %></li>
</ul>

js ファイルでは、関数の外側で配列を宣言しています。関数内からユーザーを配列にプッシュしようとしています。ページを更新するまではすべてうまくいきます...配列も更新されます-私は初心者ですが、スコープの問題のようです。ページを更新した後でも、配列をそのまま維持しようとしているので、ファイル内の他のポイントで参照できます。どんな助けでも大歓迎です。また、javascript でのセッションの作成 (サインイン/サインアウト用) について読むことができる場所への良いリンクを持っている人はいますか?

4

0 に答える 0