2011-10-25 10 views
0

データベースからhtmlフォームに変数(価格)を設定しました。 ユーザーは価格を変更してフォームを送信し、変数はデータベースで更新されます。 前の値(最後の状態をフォームに表示する)を保持したいが、フォーム変数を更新すると更新が維持される。変数の過去の値を保持

変数の以前の値を(たとえば配列などで)覚えておくにはどうすればよいですか?

+0

以前の値をどれくらい覚えておきますか? – Crontab

+0

ユーザーは彼がそれに同意するまで価格を変更することができます。最初の金額が表示されます。 私はちょうど初期価格で1つの列を作成し、それを変更しないでください。 まだ最後の値を表示するにはどうすればいいですか? – phpJs

答えて

0

実際のデータベースでこのデータを更新する場合は、前の行の値を保持するパラレルテーブルを作成する必要があります。あなただけの配列を更新している場合

は、そうでなければ、あなたは直前のアレイを更新するコピーを作成することができます。http://codepad.org/SvlasJ7f

<?php 

    $array = array('Old Value'); 
    $lastarray = ''; 

    updateArray($array,'New Value'); 

    function updateArray(&$a,$v) { 
     $GLOBALS[lastarray] = $a; 
     $a = array($v); 
    } 
?> 
+0

私は実際の列の隣に平行な列を作った。私は配列を作成し、配列の先頭(または末尾)に新しい値を(キー値として)プッシュするようにするつもりです。 – phpJs

0

あなたは最後の値を保持し、画面に表示したい場合は、 2つを組み合わせる!フォームのreadonlyinputフィールドに前の値を表示するだけです。そうすれば、フォームが提出されるたびに以前の値を保持します。

<form action="process.php" method="POST"> 
    <input type="text" name="Current" value="..."> 
    <input type="text" name="Last" value="..." readonly="readonly"> 
</form> 

何か不足していますか?

+0

しかし、私はデータベースから変数の値を取得するので、私はそれを更新すると、それはデータベースで更新され、結果的にhtmlになります。しかし、私がした解決策は、2つの列(静的および変更)を作成し、静的列から元の値を取得することです。とにかく - 私はchangin値の配列を作りたかったので、毎回の変更が記憶されています - 私はこの問題について考えています:) – phpJs

+0

あなたはそれをユーザーが変更するたびにDBに更新しますか?なぜ彼らは完了しただけではないのですか?あなたは「彼がそれに同意するまで、ユーザーは価格を変えるかもしれない」というコメントで言った。したがって、OKのときだけ値を保存してください。それはDBにたくさんのクエリを保存します。 –

+0

変更するたびにボタンを押すとデータベースに書き込まれます。もし彼らがそれで大丈夫なら、彼らは変わらない。システムは、彼らがいつ終わったかを知りません - それは毎回大丈夫です。私はもっと仕事をしなければならないでしょう – phpJs

関連する問題