0

ここで、セッションを使用してテキストボックスに値を保存する際に問題があります。

テキスト ボックスの 1 つに値を入力し、もう 1 つのテキスト ボックスに値が入力されていない場合は、送信します。値は最初のテキスト ボックスに表示され、テキスト ボックスを無効にしますが、2 番目のテキスト ボックスに値を入力して送信すると、最初のテキスト ボックスの値が消えてしまいます。誰でもこの問題を解決できますか?

PHP

<?php
session_start();
@$two = $_POST['two'];
@$four = $_POST['four'];
if(isset($_POST['submit'])){
    $_SESSION['two'] = $two;
    $_SESSION['four'] = $four;
}
?>  

HTML

<form method="POST">
Textbox One:  <input type="text" value="<?=@$_SESSION['two']; ?>" name="two" class="inputborder" size="20" <?phpif(@$_SESSION['two']){ echo"disabled=disabled";} else{echo ""; }?> />
<br>    
Textbox Two:  <input type="text" value="<?=@$_SESSION['four']; ?>" name="four" class="inputborder" size="20" <?php if(@$_SESSION['four']){ echo"disabled=disabled";}else{ echo ""; }?> />
<br>        
<input type="submit" name="submit">
</form>
4

1 に答える 1

0

サブミットをチェックする前に、なぜ $two と $four の変数を取得しようとしているのですか?

<?php
session_start();

if(isset($_POST['submit'])){

  if(isset($_POST['two'])){
      $two = $_POST['two'];
  }

  if(isset($_POST['four'])){
      $four = $_POST['four'];
  }

   $_SESSION['two'] = $two;
   $_SESSION['four'] = $four;
}
?> 

これにより、PHP で「@」記号が不要になります。(ただし、さらにエラー処理が適切です)。しかし、どこでもエラーを抑制しているのに、どうやってフィードバックを得るのですか?

于 2012-06-06T21:11:05.060 に答える