いつかきっと役に立つ

Posts Tagged ‘XHTML

なんちゅんスかね、入力確認画面で「次へ」っちゅのと、「戻る」ちゅのと、よくあるじゃないスか。ふむっ。あの~、ほんとはね、ブラウザの戻るボタンで入力値を保持するっちゅのやりたかったんスがね。セッションでやるとかどこ見ても書いてあるんスが、、、ログインチェックでセッション使ってるせいかどうか、うまくいきませんで(-“-;)。。。しょうがなくなんスけどね、入力画面で入れた値を確認画面につないで、そこでボタン2個用意して「入力に戻る」ちゅのと「送信する」っちゅのに分けることに。はい。

で、参考にしたのはココ→FORM内に複数のsubmitを設置したとき – PHPプロ!Q&A掲示板

フォームでは「name」と「value」が送信されるっちゅのはなにもボタンに限ったことではなく、それを利用しようっちゅことですな。

以下、サンプル。

入力フォームにより引き継いだnameを「01」、「02」、「03」としてcheck.phpで確認用に表示し、振り分けはexec.phpで行うことにしましょ。

【check.php】

<form action=”exec.php” method=”post“>
<!–入力ページからとってきた値を確認用に表示する。–>
<?php
if ($_SERVER[“REQUEST_METHOD”] == “POST”) {
//フォームからデータを受け取る
$01 = $_POST[“01”];
$02 = $_POST[“02”];
$03 = $_POST[“03″];
//データを表示
echo $01.”<br />”;
echo $02.”<br />”;
echo $03;
}
else {
echo ‘Error!’;
exit;
}
?>
<input type=”submit” name=”back” value=”戻る” />
<input type=”submit” name=”submit” value=”送信” />

<!–以下、隠しフォーム。exec.phpに引き継ぐ内容。入力ページで直に振り分ける場合は不要。–>
<input type=”hidden” name=”01″ value=”<?php echo $01 ; ?>”>
<input type=”hidden” name=”02″ value=”<?php echo $02 ; ?>”>
<input type=”hidden” name=”03″ value=”<?php echo $03 ; ?>”>
</form>

【exec.php】

<?php
if (isset($_POST[‘back‘])) {
//戻るのときの処理。この場合、入力ページに値を引き継ぐ。
}
if (isset($_POST[‘submit‘])) {
//送信のときの処理。
}
?>

こんなカンジでしょうかね。

広告
タグ:

またまたやってくれましたな。IE(-“-;)=3

え~、「このコントロールをアクティブ化して使用するにはクリックしてください」っちゅヤツのハナシですな。いろいろ調べた結果、ユーザが許可をしないのに勝手に動き出しちゃったりするActiveXコントロールを直接埋め込んだウェブページはいかんのですと。ま、確かにありますな。うっとおしいヤツ。。。対策を発見しましたのでメモっ。

『このコントロールをアクティブ化して使用するにはクリックしてください』の対処法(webページ製作者向け)(discotique2000)によると

「動かない」絵や”命令書”を読み出すのはセーフ

だそうで。この”命令書”っちゅのを、この場合、JavaScriptで書くと。で、表示されるページで呼び出したら直接ではなく間接だからイイんですと(←MSの言い分)。ま、抜け道ってそんなもんでしょうな。あ、JavaScriptですのでね。必要によってはFlashの中身的なものを<noscript></noscript>とかで埋めといたほうが良いでしょうな。はい。

で、やり方。

基本、リンク先の説明どおりにやります。ただし、ハツカミの場合、<embed />だけの書き出しでは動作しませんで。。。タグの書き方がxhtmlのせいか、エディタのせいか、「”」と「’」がごっちゃになったりしてましてね。<object></object>の部分を1行ずつdocument.write();してなんとか成功しました。

え~、Flashでインターフェイスするときなんですがね。getURL()で_blank指定して複数のウィンドウを呼び出すと、IEのポップアップブロックにひっかかってしまう♂ま、ユーザビリティっちゅんすかね、使い勝手とか考えると、ぼんぼん新しいウィンドウ出てこられるのもよくないんでしょうが、、、気分的に違うサイトにリンク貼るときは_blankしたいなぁと。。。さ、困った♂で、見つけた方法。

fscommandを使う

Flashが勝手に書き出したHTMLを見てみると、基本、JavaScriptのwindow.open()に処理させつつ、ブラウザがIEの場合はVBscriptを経由してJavaScriptを呼び出すみたいなことですかね。(→詳しい説明:FLASH備忘録-FS Command(JavaScriptとの連携)-

で、HTML側で_blank指定したリンクがあると、これまた新しいウィンドウがブロックされちゃうんで、JavaScriptで制御。

<a href=”#” onclick=”w=window.open(‘リンク先’,’ウィンドウ名‘);w.focus();return false;”>リンクテキスト</a>

ActionScriptのfscommandで書いたウィンドウ名を、HTML側のリンクでも同じく指定してやるっちゅハナシですな。で、フォーカスをそのウィンドウに移動。(→詳しい説明:「リンクを別窓に表示」をいろんな手法で行う

え~、これで一応解決しましたな◎

HTMLに埋め込む場合はiframe使うっちゅ方法があるようですが、XHTML1.1ではiframe要素は廃止されてるんでブッブーなわけで♂W3Cのバリデータ通すと真っ赤っかになっちゃうっと。真っ赤はちと言いすぎかなw。で、代替方法はすでに見つけ出されてるようですな。参考にしたのはここ→WWW WATCH。すっごく詳しく解説されてます。object要素を使いましょってことみたいッスね。で、このobject要素っちゅのはインライン要素として定義されてるんで、body直下に書けないと。必ずブロック要素の中で使いましょってことでしたな。あとブロック要素を中に入れたり(例の場合は<p>~</p>でしたなっっ)、img要素の代わりにもできると。こ、こりゃスゴイ。。。かなり便利と思いきや、動作はブラウザ依存っちゅなんとももどかしい評価が。。。なんだかな~。。。

で、やっぱphpで書いたほうがはやいのかなっと。やってみたソース以下。

【表示部分スクリプト(display.php )】

<?php require_once "●●●/ad.php"; ?>←ここがobject要素のかわり

【生成部分スクリプト(ad.php )】

<a href="$url" target="_top" title="$sitetitle"><img src="$imgpass" alt="$disc"></a>

こんなかんじですかね。変数部分を書き出す形のスクリプトで◎動作サンプル→ハツカミ.jp(フッタ部分のバナ)。ふむっ。やっぱ、php使える環境ならこのほうが簡単かな。。。一応、成功しましたしねっ。

タグ:

ろぐカレンダ

2017年10月
« 7月    
1234567
891011121314
15161718192021
22232425262728
293031  

進行中のミッション

【鹿角の文化財級建築物を調査せよ!】

Flickr Photos:canon

Blog Stats

  • 123,992 hits