アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP初心者です。

テキストボックスに入力された発売日をチェックしてMySQLのDATATIME形式の発売日のフィールドにデータを突っ込むプログラムを組んでいるのですが

1、DATATIMEは4-2-2の形式なので、この通りかチェックしたい
2、発売日が不明な場合は空欄でもOKにしたい
3、入力はされているが4-2-2の形式以外の場合はエラーメッセージを出したい
4、入力された数値が4-2-2の形式でも存在しない日付の場合もエラーメッセージを出したい


以上のことを踏まえて

if ($_POST['sale'] == '') {
$error['sale'] = 'black';

<input type="text" name="sale" size="10" id="sale">
<?php
$sale = mb_convert_kana($_REQUEST['sale'], 'a', 'UTF-8');
if (preg_match("/^\d{4}\-\d{2}\-\d{2}$/", $sale)) {
echo htmlspecialchars($_POST['sale'], ENT_QUOTES, 'UTF-8');
} else if ($error['sale'] == 'blank') {
echo htmlspecialchars($_POST['sale'], ENT_QUOTES, 'UTF-8');
}
?>

1、2までは何となくできたのですが3のエラーメッセージを出す場合CSSで文字の色を変えたいので

<p class="error">* 発売日は 空欄 もしくは 2010-01-01 の形式でご記入ください</p>

HTMLでこれを入れる場合、どのようにプログラムを組めばよいのでしょうか?

単純に考えれば

if ( ) {
} else if ( ) {
} else {
}

みたいな感じになると思うのですがそうするとPHPの中にHTMLを記述しないといけなくなります。

自分はまだPHPの中にHTMLを記述する方法は知りません。

また、4の機能も付ける場合どのようにプログラムを組めばよいかわかりません。

よろしくお願いします。

A 回答 (1件)

if ($_POST['sale'] == '') {


$error['sale'] = 'black';

<input type="text" name="sale" size="10" id="sale">
<?php
$sale = mb_convert_kana($_REQUEST['sale'], 'a', 'UTF-8');
if (preg_match("/^\d{4}\-\d{2}\-\d{2}$/", $sale)) {
echo htmlspecialchars($_POST['sale'], ENT_QUOTES, 'UTF-8');
} else if ($error['sale'] == 'blank') {
echo htmlspecialchars($_POST['sale'], ENT_QUOTES, 'UTF-8');
}
?>

> 1、2までは何となくできたのですが3のエラーメッセージを出す場合CSSで文字の色を変えたいので
> <p class="error">* 発売日は 空欄 もしくは 2010-01-01 の形式でご記入ください</p>
> HTMLでこれを入れる場合、どのようにプログラムを組めばよいのでしょうか?

エラーの場合に上記タグを変数Aに設定し、任意の部分で変数Aをechoする、で良いかと。
$A = '';
if ( ) {
 $A = '<p class="error">* 発売日は 空欄 もしくは 2010-01-01 の形式でご記入ください</p>';
} else if ( ) {
 $A = '<p class="error">* なんか別なエラー</p>'
}

echo $A;

> みたいな感じになると思うのですがそうするとPHPの中にHTMLを記述しないといけなくなります。
> 自分はまだPHPの中にHTMLを記述する方法は知りません。
HTML内にPHPコードを書けばいいだけです。
    • good
    • 0
この回答へのお礼

回答有難うございます。

お礼日時:2010/12/29 17:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!