[PHP-users 1789] Re: 様々な入力でもOK

BosProject T.Takeuchi php-users@php.gr.jp
Tue, 4 Sep 2001 20:03:53 +0900


汎用的なスクリプトを目指すなら、こういう方法はいかがでしょうか。


[必須の場合、nameのパラメータ末尾に _ を付ける]
名前:<input type='text' name='data[名前_]'>

[必須でない場合、パラメータをそのまま使う]
郵便番号:<input type='text' name='data[郵便番号]'>

while(list($key,$val) = each($data)){

  // 必須項目が未記入の場合
  if(ereg("(.+)_$",$key) && $val == ''){
    $empty[$key] = $val;
  }

  // 必須項目が正しく入力されている場合
  else if(ereg("(.+)_$",$key,$match)){
    $ereg_key = $match[1];
    $input[$ereg_key] = $val;
  }

  // 任意項目の場合
  else{
    $input[$key] = $val;
  }
}

// 必須項目に記入漏れがある場合、未記入項目名を,で連結して表示
if(count($empty)){
  $empty_data = join(",",$empty);
    echo "${empty_data}が未入力です。\n";
  exit;
}

// 確認画面の表示
else{
  echo "入力内容を確認して下さい。<br>\n";
  while(list($key,$val) = each($input)){
    echo "$key : $val\n";
    echo "<input type='hidden' name='data[$key]' value='$val'><br>\n";
  }
}

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
合資会社ボスプロジェクト
竹内 輝明 webmaster@bos-project.com
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
>