2009年11月27日金曜日

htmlの<input type=text>タグでvalueに「ダブル引用符」を設定する方法

htmlの<input type="text">でvalueプロパティの値に「ダブル引用符」を指定しようとして、value変数にダブル引用符を書くと次のようになってしまいます。<input type="text" name="a" size="" value="ダブル引用符(")">とすると、value文字列内の"で終わってしまいます。
つまり
「"ダブル引用符(" 」と「)"」で分かれてしまいます。
このようにHTMLのinputタグのtextタイプでは、簡単にダブル引用符を使うことができません。
しかし、textタイプに「ダブル引用符」を指定する方法が分かりました!!

ダブル引用符を「&quot;」とすれば正しく表示することができます。このようなHTMLでの特殊記号については、こちらを見てください。

上の例のように、textタイプで「ダブル引用符(")」と値設定する場合には、次のようにします。
<input type="text" name="a" size="" value="ダブル引用符(&quot;)">

inputタグのtextタイプ以外でも<textarea>タグ内のデータで&quot;」とすれば正しく表示することができました。
さらに、formタグ内のinputタグの値(value)は、submitボタンなどにより送信されるPostメソッドのパラメータとなりますが、このようにして設定した文字列が、サーブレットのPostメソッドで正常に取り出せることを確認しました。

2009年11月24日火曜日

Yawdbaでルール設計中(1)

約1ヶ月近くアップしていませんでした。現在、Yawdbaでのルールを考えています。

Yawdbaのルールは、主に、SQLコマンドなどを通じてWebに表示するテーブルを作成する[Control]セクションと、[Control]セクションで得られたテーブルをWeb画面に表示する際の見た目を定義する[View]セクション、さらに[View]セクションで得られたhtml画面のスタイルを定義する[StylSheet]セクションから構成されます。

現在の考えている案は、以下のようになります。
[Control]
Table = Query("SELECT ID, DATE, FIELD1 FROM MYDB WHERE DATE=#%Param%#");
SQLExec="UPDATE MYDB SET DATE1 = #$MYDB.DATE$#,
FIELD1 = "$MYDB.FIELD1$' WHERE ID = %MYDB.ID%";

[View]
table {
label {
MYDB.DATE = 日付;
MYDB.FIELD1 = 値;
body {
MYDB.DATE=date[YY/MM/DD];
MYDB.FIELD1=text[20];
MYDB.ID=hidden;
}
}

上の例では、データベースのMYDBテーブルからブラウザのParamパラメタで指定された日付を検索して、ID、DATE、FIELD1を表示するとともに、DATEフィールドとFIELDフィールドを入力フィールドとして値を変更するものです。
バッククォーテーション(`)で指定された文字列が、SQLコマンドとなりますが、この中の$あるいは%で囲まれた部分が変数名となります。$で囲まれた変数は、入力フィールドとして動作し、%で囲まれた変数は、埋め込みフィールドとして動作することになります。

したがって、
  Table = Query(`SELECT ID, DATE, FIELD1 FROM MYDB WHERE DATE=#%Param%#`);

のParamは、%で囲まれているので、この変数部分にHttpのGetパラメータの値が埋めもまれ、SQL文字列が完成し、処理する内部テーブルが完成します。
次に、SQLExecでは、データベースのSQL更新のSQLコマンドを定義している。ここでは、$で囲まれたMYDB.DATE変数とMYDB.FIELD1変数が入力フィールドとなります。さらに、その後のbodyでこららの変数の形が定義されています。

因みに、内部テーブルに取り込んだMYDB.IDは、bodyのhiddenパラメータで表示しないように定義しているので、Web画面上では、MYDB.IDは表示しません。

皆さんの意見を頂けると助かります。お願いします。