• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ajaxを利用してテキストエリアの内容を保存)

Ajaxを利用してテキストエリアの内容を保存する方法と注意点

このQ&Aのポイント
  • HTMLからテキストエリアの内容をAjaxを使ってRubyに送信し、ファイルに保存する方法について解説します。
  • テキストエリアに『;(セミコロン)』が入っていると、送信時にエラーが発生する可能性があります。そのため、注意が必要です。
  • AjaxとRubyのどちらに問題があるのか、具体的な原因を特定するために、詳細なエラーメッセージをチェックしましょう。

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

  • ベストアンサー
回答No.1

一応当方の環境 Minefield/Gecko + Ruby 1.9.0 Build 20060415 で再現した。 ==========Q3843847-1.rb============== #!C:\Environment\Ruby\v1.9.0\bin\ruby.exe require "cgi" require "fileutils" begin cgi = CGI.new; str = cgi["myTEXT"]; sample = open("./Q3483847-1.txt","w+"); sample.puts str; sample.close; end =============Q3843847-1.html============== <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <title>Q3483847 TestCase 1</title> <script type="text/javascript" src="lib/prototype/v1.5.11/prototype.js"></script> <script type="text/javascript"> function onLoad(){ /* 個人的な都合で発動条件違うけど気にするな。(textareaからフォーカスが外れたとき) */ Event.observe($("myTEXT"),"change",iv05,false); } function iv05(){ var y = $("myTEXT").value; var url="Q3483847-1.rb?myTEXT=" + encodeURIComponent(y) ; /* 【ここが重要。】*/ new Ajax.Request(url, { method:"get", onComplete:onComplete2 } ); } function onComplete2(){ } </script> </head> <body onload="onLoad();"> <p><textarea rows="7" cols="80" wrap="off" id="myTEXT" ></textarea></p> </body> </html> その他,同ディレクトリに ファイルとして Q3483847-1.txt lib/prototype/v1.5.11フォルダに prototype.jsを配置している。

tomoiq
質問者

お礼

お返事有難うございます。 また、お礼が遅くなって申し訳ありません。 本日、教えて頂いた事を試してみたところ無事出力されました。 prototype.jsにはお世話になっていますが、まさか"URLエンコードして返す"なんてメソッドがあったとは...。 完全に私の勉強不足でした。 機械がありましたら、また宜しくお願いいたします。有難うございました。

関連するQ&A