gooドクター有料プランが1ヶ月間無料!

PHPとDBを学習し始めて半月です。
わからないところができましたので質問いたします。


PHPでデータベースからデータを取り出し、表示するプログラムを作っています。
データベースには、「ID」と「PASS」、「時刻1」、「時刻2」が数人分登録されています。
PHPで、「渡されたIDとPASSのレコードにある時刻1と時刻2を表示する関数time()」をつくり、テストして正しく動作しました。

フォームからIDとPASSを送信してログインし、main.phpに入るところまで作りました。
main.phpで、「時刻を表示」というボタンを押すと、そのボタンの下に時刻1と時刻2を表示するようなプログラムを作りたいのですが、仕組みをどうすればいいのか悩んでいます。
主な疑問は、
・ボタンのactionは何にすればいいのか
・同一ページに表示する方法
・ボタンを押す~引数を渡す~関数を実行する、までの流れ

です。
分かりにくかったら申し訳ありません。
よろしくお願いします。

gooドクター

A 回答 (3件)

同一ページとは


画面遷移してもいいんですよね?
だとしたらactionをmain.phpにして
つまり自分自身を呼び出します

ちなみにphpないぞう関数にもtime()があるので
変えたほうがいいかもです。

端的にかくとこんな感じですかね?
------------------------------
<?php
if($_REQUEST['disp_time']) {
$data = disp_time();
}

//じさく関数
function disp_time() {
return array('time1'=>'はちじ','time2'=>'さんじ');
}
?>
<html>
<body>

<form action="main.php">
<input type="submit" name="disp_time" value="じかんひょうじ">
</form>

<?if($_REQUEST['display_time']):?>
じかん1:<?=$data['time1']?><br>
じかん2:<?=$data['time2']?><br>
<?endif;?>

</body>
</html>
------------------------------
    • good
    • 1
この回答へのお礼

わかりやすい回答ありがとうございました。
自作関数の名前を変えて、教えていただいた例を参考にコーディングしてみます。

お礼日時:2008/10/06 09:52

スイマセン…。

下の$timeは気にしないでください…。
ソースをいきなり書いてしまうのもどうかと思って消した時に、一緒に消し忘れた変数です。
$timeは表示したいデータが格納されている変数だと思って下さい( >_<)

この回答への補足

回答ありがとうございました。
質問にミスがありました。自作関数time()は、
「渡されたIDとPASSのレコードにある時刻1と時刻2を表示する関数time()」

、「渡されたIDとPASSのレコードにある時刻1と時刻2を返す関数time()」

一人あたり何件もデータがある仕様なので、返ってくるデータは配列です。
今更で申し訳ないです。


>if( ! is_null($_POST['a2'])){ //時刻を表示をクリックするとa2に>値が入ってくる
これはa2に関数の結果が入るということでしょうか?

>//日付と時刻を表示する処理
ここで自作関数time()を実行でしょうか?

補足日時:2008/10/03 14:45
    • good
    • 0

actionはsubmitで良いと思います。


以下におおざっぱですが書いてみます。

2種類?のsubmitボタンにname属性を付加
ex)
<input name="a1" type="submit" value="login">
<input name="a2" type="submit" value="時刻を表示">

php側では
if( ! is_null($_POST['a2'])){ //時刻を表示をクリックするとa2に値が入ってくる
//日付と時刻を表示する処理
//表示したいデータを変数に格納
}
あとは表示したい個所に$timeを記述してあげるだけだと思います。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング