スレッド表示 | フラット表示〕 全トピック 920 件中 404 番目 次≫ ≪前

動的にボタンを作成することの可否

created: 2005-07-18 22:29 | modified: 2005-07-23 22:53 | reply: 4

[2395] 動的にボタンを作成することの可否

user: まお | created: 2005-07-18 22:29
 ここに質問をさせてもらって、お答えを頂きながら、
なんとかDBにあるデータをSELECT文で吐き出して、
表示させるところまできました。
本当にありがとうございます。

しかし、また新たな疑問が出てきてしまいました。
なにとぞお答えを頂ければと思います。

私がやりたいことは、
SELECTにより抽出されたある項目を、
ボタンの名前にしたいといことです。
つまりどのようなことかというと、

SELECT NAME FROM TABLE;

という文から、(A,B,C,D,E,F,G)という7件のNAMEが
抽出され、表示されたとすると、
この7件のNAMEが表示されている隣に、
(A,B,C,D,E,F,G)というソレゾレの名前がついたボタンを
自動的に7件作成したいということです。
もちろん、100件の名前が抽出された場合は、
100件のボタンが作成されることになります。

ボタンは、HTML内の<FORM>?</FORM>でやっているので、
やはり無理なのでしょうか・・・。
reply: 2398 返信 編集 削除

[2398] Re:動的にボタンを作成することの可否

user: ぱぴよん | created: 2005-07-19 09:39
まおさんはじめまして、ぱぴよんと申します。

> 私がやりたいことは、
> SELECTにより抽出されたある項目を、
> ボタンの名前にしたいといことです。
> つまりどのようなことかというと、
>
> SELECT NAME FROM TABLE;
>
> という文から、(A,B,C,D,E,F,G)という7件のNAMEが
> 抽出され、表示されたとすると、
> この7件のNAMEが表示されている隣に、
> (A,B,C,D,E,F,G)というソレゾレの名前がついたボタンを
> 自動的に7件作成したいということです。
> もちろん、100件の名前が抽出された場合は、
> 100件のボタンが作成されることになります。

可能です。
どのデータベースでも大体 ○○○_result() というPHPの関数で
フィールドのデータを取得できますね?

例:odbc接続 => odbc_result()
 :mysql  => mysql_result()
など

そのデータを取得する部分で下記のようにできます。

<?php
$name = ○○○_result(クエリーID, 'NAME'[またはフィールド番号]);
?>

<!-- HTML部 //-->
<input type="button" name="<?=$name?>" value="<?=$name?>">
<!-- HTML部 //-->


今回の場合は動的にボタンを生成するので、HTML(ボタン)の部分もPHPのprintやechoで書き出してあげた方がいいと思います。
<?php
while(レコード数だけループ) {
$name = ○○○_result(クエリーID, 'NAME'[またはフィールド番号]);
print "<input type=\"button\" name=\"{$name}\" value=\"{$name}\">";
}
?>
Parent: 2395  reply: 2399 返信 編集 削除

[2399] おお、感謝ですっ

user: まお | created: 2005-07-20 00:01
ふおおおおおっ!!
出来るんですか!?
アリガトウございます・゚・(ノД`)・゚・。
これで、より一層満足のいくHPがつくれそうです。
本当にありがとうございます。

ちなみに、

print "<input type=\"button\" name=\"{$name}\" value=\"{$name}\">";

の \"button\" にある \ マークは何を意味するもの
なのでしょうか?
Parent: 2398  reply: 2400 返信 編集 削除

[2400] エスケープ文字( \ )

user: ぱぴよん | created: 2005-07-20 09:15
> print "<input type=\"button\" name=\"{$name}\" value=\"{$name}\">";
>
> の \"button\" にある \ マークは何を意味するもの
> なのでしょうか?

この¥マークはエスケープ文字を意味しています。
上記のprint文を例にあげると
print "出力する文字列";
この出力する文字列の中に「"」が含まれていると
PHPはそこでprint文の終了と解釈してしまいます。

print ""a";
【 結果 】
Parse error: syntax error, unexpected T_STRING in 実行ファイル on line 行数

というようになります。

そこで「"」をエスケープ文字(\)でエスケープしてあげると「"」も出力することができます。
print "\"a";
【 結果 】
"a


print ''a'; の場合も同様で
print '\'a'; としてあげないと正しく表示されません。


「エスケープ文字」でgoogleなどで検索すれば、もっと詳しく分かると思います(@^-^@)
Parent: 2399  reply: 2404 返信 編集 削除

[2404] ありがとうございました!!

user: まお | created: 2005-07-23 22:53
¥マークだけで検索していたのですが、該当HP
がみつからなかったんです。

エスケープ文字で検索してみますね。
ぱぴおんさん、ありがとうございました。
Parent: 2400  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 404 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑