0

ページにいくつかの同一のフォームがあります(評価用です)。フォームは次のようになります。

    <form id="contact" name="contact" action="#" method="post">

    <input  id="titel" name="titel">
    <textarea id="msg" name="comment" class="txtarea"></textarea>

    <button id="send">Send</button>
     </form> 

すべてのキー=>値のペアを配列に格納したいページにajax経由でフォームデータを送信しています。

これは、フォームデータが送信される私のphpページにあるものです:

$arr = $_POST; 

$array = array();

$array['titel'] = $arr['titel'];
$array['comment'] = $arr['comment'];

print_r($array);

最初のフォームを送信すると、prin_r から次のように返されます: Array ( [title] => test [comment] => test2 )

これはまさに私が欲しいものです。しかし、次のフォームを送信すると、次のように値が配列に挿入されません。

    Array ( [titel] => test [comment] => test2
    [titel] => test3 [comment] => test4

 ) 

実際には何も起こりません。値は同じままです。

どんな助けでも大歓迎です!

4

1 に答える 1

1

主にここでコメントをまとめます。

1.フォームとリクエストの分離

あなたはいくつかのフォームを提出したと言いました。フォーム データを PHP スクリプトに送信するたびに、スクリプトが 1 行ずつ実行され、完了するとプロセス全体が終了します。別のフォームを送信すると、以前に定義した使用可能な変数がない別のスクリプトが実行されます。

これが HTTP の仕組みです。各リクエストは分離された実行です。

特定のクライアントにバインドされたデータを「記憶」する 1 つの手法は、セッションを作成することです。セッションは、デフォルトでクライアント側に自動的に Cookie に保存される ID と、サーバーに保存され、いくつかの分離されたリクエストで再利用できるセッション ストレージで構成されます。

詳細はこちら http://php.net/manual/en/features.sessions.php

2. PHP の配列

配列キーは一意である必要があります。想像してみてください - PHP がどのように知る必要があるか、それが一意の制約でない場合にアクセスしたい値。

あなたは「データベースの結果のいくつかの行のような配列」と言いました

これはこのように見えます

$result = array
(
    0 => array ( 'col1' => 'colval1' ),
    1 => array ( 'col1' => 'vol1val' )
)

同じことができます

$survey = array (
    'step1' => array(...)
);

こんな風にアクセス

$survey['step1']['..']

これをセッションに保存するには

session_start();
$_SESSION['step1'] = $survey['step1'];

後のリクエストでこれにアクセスするには

print_r( $_SESSION['step1'] );

これが役立つことを願っています:)メリークリスマス

于 2012-12-23T12:29:36.833 に答える