• ベストアンサー

TEXTBOXの値の取扱い

ASP(vbscript) + Access(mdb) 今、登録・編集するASPページを作成しています. そこでTEXTBOXのデータの取扱いに困っています. TEXTBOXの入力内容にHTMLタグを含む文字列を 入力した場合、mdbに登録まではいいのですが、 編集時にどのようにTEXTBOXに表示していいのか分かりません HTMLEncode後の文字列で扱うと、再保存などを繰り替えすうちに >、<などの文字列になってしまいます. TEXTBOXの文字列はどのように扱うのがいいのでしょうか?

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

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

編集時というよりは、表示時ってことでしょうか? HTMLEncodeをどのように実装されているのか?にもよりますが、 もし、Server.URLEncodeを使って、Encodeされているのであれば、 Decode(元に戻す)処理は、自作で作らなければなりません。 こんな感じで・・・ Function URLDecode(sConvert) Dim aSplit Dim sOutput Dim I If IsNull(sConvert) Then URLDecode = "" Exit Function End If ' convert all pluses to spaces sOutput = REPLACE(sConvert, "+", " ") ' next convert %hexdigits to the character aSplit = Split(sOutput, "%") If IsArray(aSplit) Then sOutput = aSplit(0) For I = 0 to UBound(aSplit) - 1 sOutput = sOutput & _ Chr("&H" & Left(aSplit(i + 1), 2)) &_ Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2) Next End If URLDecode = sOutput End Function この自作したFunctionを <input type="textbox" name="text1" id="text1" value="<%=URLDecode(MDBから読み込んできたDecodeすべきデータ) %>"> というかんじにしてやるといけると思います。 お試しください。

参考URL:
http://www.aspnut.com/reference/encoding.asp

関連するQ&A

  • TEXTAREAと改行について

    環境:ASP(VBScript) DB:Access2000 初心者です。 HTMLのTEXTAREAで入力した文字列を DBに書き込むと最初の改行以降が書き込まれません。 なにがいい方法はありませんか?

  • TEXTBOXでカンマ編集

    こんにちは ASP .NET初心者です。宜しくお願いします。ASP .NET VBでWebAPPの開発を試しているのですが TEXTBOXで入力された内容をカンマ編集や右寄せを行いたいのですが何か良い方法は無いでしょうか。DBグリッド使う場合の紹介は幾つかされているようですがTEXTBOXやLABELコントロールで出来ないものかと考えています。  どなたか、宜しくお願いします。

  • TextBox操作で質問

    TextBox操作で質問 開発環境:Visual Web Developer 2008 express 言語:Visual Basic TextBoxを縦5行横3列に並べ、2列目のTextBox(番号…2,5、8、11、14)に文字列があり、1列目のTextBox(番号…1、4、11、10、13)に文字がなかったら、1列目のTextBoxに”あ”の文字列を付加する、のようなことをしたいのですが、2列目に文字列がなくても、1列目に"あ"の文字列が入ってしまいます。どこが悪いのか分かりませんのでご教授願います。 ###入力フォーム###   ううう おおお い ううう おおお   ううう おおお      ↓ ###現状の出力結果#### あ ううう おおお い ううう おおお あ ううう おおお あ あ ###実際に出したい結果### あ ううう おおお い ううう おおお あ ううう おおお Dim i As Integer Dim j As Integer For i = 1 To 13 Step 3 For j = 2 To 14 Step 3 If CType(FindControl("TextBox" & j), TextBox).Text = "" Then If CType(FindControl("TextBox" & i), TextBox).Text = Nothing Then CType(FindControl("TextBox" & i), TextBox).Text = "あ" End If End If Next Next

  • TextBoxに入力された文字列のソート

    TextBoxに入力された文字列のソート TextBoxに入力された文字列のソート 開発環境:Visual Web Developer 2008 express 言語:Visual Basic TextBoxを縦5行横3列に並べた表形式の入力フォームがあり、1列目のTextBox(番号…1,4、7、10、13)に入力された文字列(数値)を基準に、昇順にソートし、行ごと入れ替えるプログラムを作りたいのですが、TextBoxを利用したソートの参考になるものが見つからず息詰まっています。どなたかサンプルや参考になるサイトがあれば、教えてください。 ###入力フォーム### 1  あああ あああ 3  ううう ううう 2  いいい いいい 5  おおお おおお 4  えええ えええ ###実際に出したい結果### 1  あああ あああ 2  いいい いいい 3  ううう ううう 4  えええ えええ 5  おおお おおお

  • CGIのtextareaへのタグの表示

    CGI(Perl)でWebのメモ帳のようなプログラムを作っています。 何種類かのHTMLタグの使用もできるようにしてあり、更に タグ説明のために &lt; &gt; などを記入することもあります。 初回の記入をそのまま表示させる場合は問題ありませんが、一度記入した内容を 編集のためにブラウザに再表示させ、更にそれを更新すると タグの <> と &lt; &gt;が どちらも <>に変換されてしまい、説明中の HTMLタグ文字列がタグになってしまいます。 例えば A: 最初の記入時「&lt; a href・・・ &gt; はリンクタグ」などと記入してアップロード B: サーバーログには「&lt; a href・・・ &gt; はリンクタグ」のまま記録される C: 編集のためにその記事を再表示させるとブラウザが「<a href・・・ >はリンクタグ」 と表示する D: 別の部分を編集後再アップロードするとログには <a href・・・ > がタグとして記録される E: 以降の表示では <a href・・・ > の部分がリンクタグとして扱われ「はリンクタグ」にリンクがかかる というような問題に悩んでいます。 textarea 内では <code>タグも使えなさそうで・・・ 思案の末、 textarea への送信時だけ 「 &lt; 」を 「<<」などとして送信し、CGIが「<<」を受け取ったら &lt; に変換してログ記録する などのローカルな方法を考えましたが、あまりスマートではないかと。 定石のような方法はないのでしょうか?

    • ベストアンサー
    • CGI
  • VB Windowsアプリ TextBoxについて

    Visual BasicでWindowsフォームアプリケーションを作っています。 下記のようなフォームがあり, ・1つのフォームにTextBoxとButtonが1つずつある ・TextBoxのTextは空 ・ButtonのTextは"abc" 下記のような動作をさせたいです。 ・Buttonをクリックすると,TextBoxにabcが追加で入力される ただし,AppendTextメソッドを使って文字列の末尾に入力するのではなく, ・入力カーソルが文字列の途中にあれば,そこにabcが入力される ・一部の文字列が選択されていれば,その文字をabcに置き換える のような,直接キーボードからabcを入力するときと同じような動作をしてほしいのです。 分かりにくいかもしれませんが,どのようにすれば実現できるか教えてください。

  • <ASP>にTextBoxの値を設定する方法

    TextBoxに記述されたDB接続文字列を<ASP>内で設定しようと試みておりますが、失敗します。どのように記述を改めればよろしいでしょうか? ----------------- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { TextBox1.Text = Application["DB_CON_STRING"].ToString(); } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>無題のページ</title> </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <div> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="DATETIME" HeaderText="DATETIME" SortExpression="DATETIME" /> <asp:BoundField DataField="MESSAGE" HeaderText="MESSAGE" SortExpression="MESSAGE" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="form1.TextBox1.Text"★ここがうまくいかない★ SelectCommand="SELECT * FROM TEST ORDER BY ID DESC"></asp:SqlDataSource> </form> </body> </html>

  • textboxの二次元配列で質問

    textboxの二次元配列で質問 Visual Web Developer 2008を使いWebアプリケーションの入力フォームを開発中です。言語はVBです。  複数行のtextboxに入力された文字を連結する方法が分かりません。ネットでいろいろ検索して二次元配列をすれば可能なようですが、分かりやすく書いてあるサイトが見つからず、苦戦しています。列数は10列。行数は50行ぐらいあります。 ↓(サンプル)  例えば、下のような入力フォームのtextboxにあ・い・う・え・お・か・き……と入力された文字列で、buttonをクリックしたら「あいうえおかきくけこ…」と文字列の連結した実行結果を出したい場合です。       列   あ|い|う|え|お| | |   か|き|く|け|こ| | | 行 さ|し|す|せ|そ| | |   た|ち|つ|て|と| | |   な|に|ぬ|ね|の| | |    | | | | | | |    | | | | | | |    textboxが多いので、二次元配列と繰り返し処理(文字がなくなるまで繰り返す)を使って、簡単にできないでしょうか? 初心者なので分かりづらい質問で申し訳ありません。 参考になるページやコードがあったら教えて下さい。 よろしくお願いします。

  • VB2010 TextBoxの文字列に正しく入力されないのは何故ですか

    VB2010 TextBoxの文字列に正しく入力されないのは何故ですか? string型の変数に文字列を入れ、TextBox.Textに代入すると文字列の後ろが切れてしまう。 Dim st As String st="s01114DG000555<0?e09" TextBox.Text = st この場合、TextBox.Textには"s01114DG000555<0"となり、後ろの4文字が切れてしまっている。 ちなみに、 TextBox.Text = "s01114DG000555<0?e09" とすると、正常に全文字数が入る。 半角文字列の塊なのに、どうしてこのようなことが起きるのでしょうか? また、これの対応策は何ですか? 以上、よろしくお願いします。

  • DataGridViewの入力内容をリアルタイムでTextBoxにコピーしたい

    よろしくお願いします。 Vb2005+Access2003でWindowsアプリケーションを開発しています。 表題のとおりなんですが、DataGridViewの2列目にあるセルにテキストを入力したら、その入力中のテキストをTextBoxにも反映させたいと考えているのですが、そういったことはできるのでしょうか?方法がありましたら、教えてください。もしできなければ、エンターキーを押したらTextBoxに反映する、という方法でも良いと考えています。 キーボードから入力された内容をDataGridViewとTextBoxの二つのコントロールに同時に表示するということができるのかわからないので、変な質問をしてたらすみません!色々と調べてみたのですがよくわからないので投稿させていただきました。どうぞよろしくお願いします。