0

JavaScript、AJAX、またはデータベースなしで次のことを行いたいです。HTML と PHP のみ。

シナリオは次のとおりです。

フォームに 2 つの HTML 入力があります。このフォームは、POST メソッドで 2 つの値 (名前と年齢) を送信します。これらの値からユーザー オブジェクトを作成し、この値を SESSION に保存してから、ユーザーの情報をフォームの下に出力します。ユーザー オブジェクトの作成に問題はありません。

すべてのユーザーの情報を出力するようにするにはどうすればよいですか。たとえば、最初のユーザーが自分の情報を入力し、送信をクリックすると、次のようになります。

 - John
 - 18 years

2 番目のユーザーが自分の情報を入力し、[送信] をクリックすると、次のようになります。

- John
- 18 years

- Kevin
- 20 years

3 番目のユーザーが自分の情報を入力し、[送信] をクリックすると、次のようになります。

- John
- 18 years

- Kevin
- 20 years

- Bryan
- 19 years

等々?

ありがとう!

4

3 に答える 3

2

データを配列に格納し、送信ごとに配列に追加する必要があります。

<?php

    session_start();
    $data = array();
    if(isset($_SESSION['data'])) {
        $data = $_SESSION['data'];
    }
    if(isset($_POST['name']) && isset($_POST['age'])) {
        // -- append to the array
        $data[] = array('name'=>$_POST['name'],'age'=>$_POST['age'],);

        // -- update the session
        $_SESSION['data'] = $data;
    }
?>
<!DOCTYPE html>
<html>
 <head>
 </head>
 <body>
    <form action="" method="post">
      Name:<br />
      <input type="text" name="name" size="10" /><br />
      Age:<br />
      <input type="text" name="age" size="2" /><br />
      <br />
        <input type="submit" />
    </form>
    <?php foreach($data as $d) { ?>
        - <?php echo $d['name']; ?><br />
        - <?php echo $d['age']; ?><br /><br />
    <?php } ?>
 </body>
</html>
于 2013-01-31T19:41:59.573 に答える
2

後で同じセッションで使用するために、これらのものをセッションに保存し続けることができます。しかし、別の方法として、それらを Cookie に保存することもできます。どちらの方法も、すべての情報を 1 台のコンピューターに入力した場合にのみ機能します。

サイトがこれを他のすべてのユーザーに出力するようにしたい場合は、データベースまたはそのようなものが必要です

于 2013-01-31T19:29:22.067 に答える
1

たとえば、あなたのコードは次のようなものです

$name = $_Post['name'];
$age = $_Post['age'];

その後

$nameおよびに sessiona 変数の配列を使用する$age

また、同じリンクで Kaleb Brasee によるこの驚くべき回答を参照してください。Sarfraz が詳細に説明しています。

于 2013-01-31T19:30:34.667 に答える