最低限の例:XULを使用してHTTP POST
質問
XULがイントラネットアプリのGUIフォームに適しているかどうかを判断しようとしています。
実際に使用する人を見つけるのは困難です。ですから、こんにちは、ワールドスタイルの例を求めたいと思いました。
HTTP POSTで送信されたコンテンツを表示するだけのphpページがあるとします。 (例: http://mysite.com/postdumper.php )
名、姓、年齢を収集し、それを上記のURLにPOSTできるXULフォームを作成するために必要な最低限のコードを誰にでも見せてもらえますか?
リンクやファインマニュアル、またはそのような例を示す参考文献は歓迎です。
解決
私はこれをイントラネットアプリケーションに使用し、数年前から使用しています。始めるのは難しいかもしれませんが、いくつかのことを理解したら、簡単に機能させることができます。
-
HTMLについて知っていたことのほとんどすべてを忘れました。これはHTMLではなく、古い方法ではできないことはたくさんありますが、代わりに信じられないほど多くのことができます。
-
賢明なコミュニケーションはすべて、フォームではなくjavascriptで行われます。
-
オーバーレイはdivとは関係ありません。しかし、大規模なプロジェクトのデザインを分割するのには非常に便利です。
-
XULページがすべてのタグで正しくフォーマットされていない場合、ページは表示されません。
主な目的がリモートXULについて議論することであるGoogleグループがあります: http://groups.google.com/group/remotexul
まだアクティブではありませんが、より多くのメンバーが歓迎されています:)
最小の例を次に示します。
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="yourwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script language="javascript">
function send()
{
var firstName = document.getElementById('firstName').value;
var lastName = document.getElementById('lastName').value;
var age = document.getElementById('age').value;
var postData = "firstName="+firstName;
postData += "&lastName="+lastName;
postData += "&age="+age;
var req = new XMLHttpRequest();
req.open("POST", "/test.php", false);
req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
req.send(postData);
alert(req.responseText);
}
</script>
<hbox>
<vbox>
<hbox>
<label value="First Name" control="firstName"/>
<textbox id="firstName"/>
</hbox>
<hbox>
<label value="Last Name" control="lastName"/>
<textbox id="lastName"/>
</hbox>
<hbox>
<label value="Age" control="age"/>
<textbox id="age" value="30" type="number"/>
</hbox>
<button onclick="send()" label="Send"/>
</vbox>
</hbox>
</window>
XMLRPCまたはJSONフレームワークを代わりに使用して、XULとPHPの間でデータをやり取りすることを検討する必要があることも強調したいと思います。 JSON 3.5のサポートはFirefox 3.5に組み込まれています。
別のことは、Firefox 3.5が到着するまで、about:configで設定を行わない限り、クロスサイトXMLHttpRequestを実行できないことです。つまり、mysite.comのxulのみがmysite.com/postdump.phpにリクエストを送信できます。
他のヒント
一連の<!> lt;を作成します。 textbox <!> gt;の場合、送信<!> lt;を追加します。 button <!> gt ;、テキストボックスからデータを読み取った後、 xmlhttprequest を使用して送信しますa>。 GETまたはPOSTを使用できます。
XMLであるためXULでその名前空間を使用する場合は、プレーンな古いxhtmlフォームを使用できます。