2012年2月23日

Javascriptでformを作成してsubmitする方法

JavaScript内でformを動的に生成して、submitする方法のメモ
よく分からずにちょっとはまってしまいました。
書いてて思ったけど、このご時勢にわざわざページ遷移させる必要があるのか、とか
jsでformを作らないといけない理由は何だ?とか思ったけどどっかで需要もあるでしょう

ということで、たとえば
input id="submit" type="button" value="送信ボタン" />

なんていうのをHTML側に書いて、このボタンを押したら動的にJSでパラメータを作ってsubmitするとします。

JS側で
var frm = document.createElement("form");
var ipt1 = document.createElement("input");
frm.action = "js_submit2.php"; frm.method = "post";
ipt1.name = "val1"; ipt1.value = "111111"; frm.appendChild(ipt1); frm.submit();

なんていうコードを書いて実行したところ、Chromeさんでは上手くいきました。
ばんざい!おしまい!
としたかったのですが、どうもFirefoxで動いていない模様。

いろいろネットで情報を集めてるうちに
Firefoxはbody要素をきっちり指定してやらないと、formが効かないらしい
ということのようです

ということで、frmをsubmitする前に
document.body.appendChild(frm);
を追加してやります。

frm.appendChild(ipt1);
document.body.appendChild(frm);
frm.submit();

こうすると、Firefoxでもちゃんと動きました。
Chromeが賢いのか、Firefoxがきっちりしてるのか。
ちなみにIEや他のでは見ていません。あしからず。

2012年2月20日

htaccessでSSLのみアクセス許可を出す

.htaccessでSSLでのアクセスのみを許可する方法



最低限これだけ書けば出来る模様
SSLRequireSSL

これがある状態でhttpでアクセスすると、403 You don't have permission to accessのエラーになります。


localhostのSSL対応していないサーバにこれを仕込んでおいたのを忘れてて
SSL対応させたらhttpアクセスが全然効かなくてはまってしまった・・


ちなみに、Apacheのエラーログにはこんなのが出ます。
failed, reason: SSL connection required

2012年2月15日

HTMLメモ 動的に要素を削除する

さすが飽き性というところで、すぐブログ書かなくなるなー。
 さて、忘れそうなので個人メモ。

HTMLで動的なページを作っている時に
要素の作成、追加は
appendChild()で行えるが
要素の削除は
removeChild() で模様。

使い方は同様で()内にhtml Objectを入れてあげれば使えるみたい。
Titaniumでアプリ作る時にでも使いそうだから覚えておこう。