• ベストアンサー

別データファイルを流し込むタイプのcgiで教えてください。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1225153 でフローチャート式のフリーcgiをご紹介頂きました。 データも流し込んでうまく動くようになりました。 このファイルはdataファイルが別にあり $datfile = './heart_sm.dat'; のように定義してから呼び出すタイプです。 別ウィンドウで小窓として表示したいので スクリプトを書き無事動作確認できました。 問題1 結果文が長いので流し込んだテキストの大きさを 変えたいのですが、枠や周りの大きさは 変わるのですが、中の流し込んだテキストは 大きさがかわりません。大きさを変えるには どうすれば良いでしょうか? 問題2 結果文にリンクを張って親ウィンドウに 戻したいのですが、単純にdatfilesに ハイパーリンクを書き込んだだけでは 認識してくれません。 良い方法はありませんか? 長いのでデータを読み込むときを 抜粋して書き込みます。 よろしくお願いします。 #--------------------------------------------------------------- sub read_data{ #データファイルの読み込み open(FILE,"$datfile") or error("データファイルが開けません。"); @data = <FILE>; close(FILE); for(@data){ chomp; next if(/^#/); @data_line = split/<>/; $data_no =$data_line[0]; if($data_no eq $Now_no){$find = 1; last} } if($find){ @data_type = split(/:/,$data_line[1]); if($data_type[0] eq "a"){ $mess1 = $data_line[3]; $Yes_no=@data_type[1]; $No_no=@data_type[2]; out_put1(); } elsif ($data_type[0] eq "b") { $mess1 = $data_line[3]; $Next_no=@data_type[1]; out_put2(); }else{ log_write(); result_print(); } } }

質問者が選んだベストアンサー

  • ベストアンサー
  • Fukutarou
  • ベストアンサー率30% (193/641)
回答No.1

データの変更ではなくCGIの変更で行ってください。 1の回答 cgiの結果文(提案)の所で <P>$mess1 に<p><font size=2>$mess1</font> にすればタグ内のサイズが指定出来ます。 2の回答 先の行に <br> <A HEF="http://***" TARGET="_top"><font size=3>戻る</font> で下に張り付けすれば良いのでは?

kanarin_777
質問者

お礼

教えてくださってありがとうございます。 助かりました!! 1については出来ました。 2なんですけど、回答パターンが複数あって その先のhtmlが回答別に違うものを作りたいんです。 難しいですよね? とりあえずはフッターの部分にリンクを設定して パターン別の一覧を出せばいいかと単純に 考えてます。

その他の回答 (3)

  • Fukutarou
  • ベストアンサー率30% (193/641)
回答No.4

#1~3です。 訂正 $link=$date_line[4]; でした。 得意な分野でないので、自信ありません。^^;

kanarin_777
質問者

お礼

なんとか出来ました!!ありがとうございました。

  • Fukutarou
  • ベストアンサー率30% (193/641)
回答No.3

データに追加とは、heart.datファイルの 34<>b:15<>10:原因No.34:診断結果No.34<> メッセージNO.34<>a(ここ) に追加することです。 34の結果表示にaを返して その列を$linkと定義し呼び出し sub out_put2{ の所に <P>$mess1 </TD></TR> </TABLE><BR> <A HEF="../$link.html" TARGET="_top"><font size=3>判定は?</font> を追記する方方法です。 bでおしまいであれば、上の方法として if($data_type[0] eq "a"){ $mess1 = $data_line[3]; $Yes_no=@data_type[1]; $No_no=@data_type[2]; $link=@date_line[4]; となるかも ソース見ただけなので実際よくわかりません>< ごめんなさい。

kanarin_777
質問者

お礼

こんにちは。いろいろとアドバイス ありがとうございます。 結果表示はbでおしまいにする方法なので 34<>b:15<>10:原因No.34:診断結果No.34<> メッセージNO.34<>a $link と書いて sub out_put2{ の所に <P>$mess1 </TD></TR> </TABLE><BR> <A HEF="../test.html" TARGET="_top"><font size=3>判定は?</font> を追加し、さらに 提案の所に if($data_type[0] eq "a"){ $mess1 = $data_line[3]; $Yes_no=@data_type[1]; $No_no=@data_type[2]; $link=@date_line[4]; を追加したんですが、 ページが表示できませんでした。 if~の文は追加する場所によって動かなく なるってことはありますか? 何度もすみません。

  • Fukutarou
  • ベストアンサー率30% (193/641)
回答No.2

#1です。 okwebが重すぎてうまく書き込めないですが、 2の方法としては データベースの区切りが<>で有るため、タグを書き込めないと言う所に有るようです。 @data_line = split/<>/; を @data_line = split/\,/; に変更して、データベースの区切りを,(カンマ)にし、結果文の最後に <A HEF="http://***" TARGET="_top"><font size=3>判定は?</font>を追加するとか出来ないでしょうか? すごく自信有りません。 他にはデータにもう一つデータを追加し、タグ$linkで呼び出す方法も有りますが。 とにかくがんばってください。

kanarin_777
質問者

お礼

お礼が遅くなってすみません。とりあえず<>を,に変えてみたんですけどやっぱり認識しないみたいです。タグ$LINKで呼び出す方法っていうのはdatファイルをもう1つ作ってとかそんな感じなんでしょうか? 質問ばっかりですみません。

関連するQ&A