- ベストアンサー
テキストボックスに記入したものが、
テキストボックスに記入したものが、 同じページ内の文中に反映されるような機能をCookieで作りました。 送信したところ、文中には反映しているのですが、 テキストボックス内の文字は一斉に消えてしまいました。 <input type="button" value="削除" onclick="DeleteCookie(CookieID)"> を押すと同時に、テキストボックスと文中の両方がクリアされるようにしたいのですが… どういった指令を組み込めばよいのでしょうか。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
意味が通じていないのかも知れないので… No1様がおっしゃっているのは、現在行なっている内容(方法)が不明なので、それを修正するにも方法を提示できないということ。 >同じページ内の文中に反映されるような機能をCookieで作りました。 は、入力内容をクッキーに保存しているように読み取れます。一方で、 >送信したところ、文中には反映しているのですが、 >テキストボックス内の文字は一斉に消えてしまいました。 からは、『(formから)サーバに入力内容を送信したら、レスポンスで入力データが消えてしまった』のように読み取れます。 文字に反映させているのは、サーバ側で処理しているのか、スクリプトでクッキーを読み出して処理しているのかが不明。 サーバに送信しているのなら、なぜ全部の処理をサーバ側で行なってしまわないのかが不明。 サーバ側で処理をできない環境であるのなら、そもそもサーバに送信することの意味が不明。(送らなければform内は消えないはず) のように推理できるので、ご質問の処理がどのようなことをしているのかわからない、という意味です。 クッキーに残すことが何を目的としているのかも不明ですし、サーバサイドの処理を作成されたのなら上記の追加もできるでしょうし、スクリプトでformデータをクッキーに保存/読出しの処理を作成された方なら、テキストのクリアやセットも出来るであろうと想像されるので、ご質問の意図(何がわからないのか)も不明ということになります。 >全てのソースをお見せすることは出来ないので、 コンテンツの内容を知る必要はまったくありません。 ソースの構造(簡略化したもの)と処理の体系がわかる簡略版を示すことで、質問者様が文章で説明するよりも、回答者にとって必要な情報を提示できるという意味です。 文章で必要なことが説明できればそれでも良いのですが、上記のように不明情報が多すぎるというのが実際です。 ご質問に文章でお答えするならば…(具それ以外には回答しようがありませんが…) データをサーバに送信する必要があるのならば、テキストの変換、formの値保持ともサーバ側で処理するのが簡単。 (そのためにはクッキーは不要。他の目的があれば別) サーバに送信する必要がない(データを保存して何らかの処理をする必要がない)場合は、クライアントサイドのスクリプトだけで、文字変換処理をすればform内のテキストは変わらない。(変換だけならクッキーは不要) あるいは、サーバに送信するにしても、データ内容だけをajaxで送信して(画面遷移はしない)文章の変換もスクリプトで行なうという方法もないことはないでしょう。 総合的には、スクリプトオフの環境でも必ず作動できる、サーバ側で処理を行なう方法が最も一般的だと思いますけれど? (負荷がかかるとか、レスポンスが悪いなどというのであれば別ですが…) >どういった指令を組み込めばよいのでしょうか テキストボックスへの値の代入は、読出しとほぼ逆。 スクリプトの代入文の左辺、右辺を逆転する感じ。 でも、それよりも普通の <input type=reset> を用いたほうが簡単では?
その他の回答 (3)
- babu_baboo
- ベストアンサー率51% (268/525)
ひょうをかんたんにつくれればもんだいないのだろうか? かんまでくぎられたもじれつのせんとうが#ではじまっていたら<th>。 それいがいなら<td> </th></td>とかはしょうりゃくしたじょ。 ぎょうのくぎりは、にじゅうの,,です せいきひょうげんには、じしんがありません。 もっとみじかくなるかも。 もちろんこれは、おあそびで、しかも、すくりぷとむこうのひとのことはかんがえていません。 <body> <table summary="なんとなくお遊びで" border="1"> <caption>こんなのは?</caption> <script type="text/javascript"><!-- document.write( '#abc,#def,#ghi,,#a,1,2,,#b,3,4'. replace(/(.+?)(?:,,|$)/g,function(a,b){return "<tr>"+b.replace(/(#)*(.+?)(?:,|$)/g,function(a,b,c){return(b?'<th>':'<td>')+c})}) ); //--> </script> </table> <p>もちろん、だめだろう</p>
お礼
ぱっと見てすぐ理解できませんので、ゆっくりと分析させて頂きます。 少ない情報の中で実際に組んでくださりありがとうございました!
- fujillin
- ベストアンサー率61% (1594/2576)
No2です。 >簡単にできるなら」と思いましたので質問させて頂いたの >ですが、難しいようですので諦めようと思います。 想像では、大して難しいことではないように思われます。 でも、一番難しいと思われるのは、質問者様が何をなさりたいのかを理解することです。 スクリプトを作成するのは、たいした手間でもないでしょうから、ここの回答者さん達がいろいろ考えてくださることでしょう。 でも、やりたいことが不明だと手も足も出ません。
お礼
何度もありがとうございます。 前回のお礼欄で、やりたかったことはお伝えしたつもりだったのですが…実際に組んでくださる方からすれば情報が少ないようですね。 あと、質問することにも慣れないもので、無理とわかったのに締め切らず失礼しました。
- yyr446
- ベストアンサー率65% (870/1330)
「同じページ内の文中に反映されるような機能をCookieで作りました。」 の機能をもう少し具体的に(できればソースコード)、説明してもらわないと、 いかんともしがたいです。
お礼
やはりそうなのですか… <script language="JavaScript">以下の部分にとある文を加えればそういった指令を出せるのかなと安易に考えておりました。 <input type="text" size="16" name="name1"> に入力して、 <script language="JavaScript"> <!--- document.write(box[0]); //END ---> </script> の部分に表示されるといった具合ですが、 用途柄、全てのソースをお見せすることは出来ないので、色々サイトを見て調べたいと思います。回答ありがとうございました。
お礼
とてもわかりやすく説明して頂きありがとうございました。 サーバ関係など一切理解しておらず、お恥ずかしい限りです。 やりたかったことは、 複数のHTMLソースを作る必要があったのですが、 Table内の数値だけが違っており、後は全て同じものでしたので、 変更箇所のある部分のみをテキストボックスに入力して ソースの文中に表示させれば簡単に作れるのではないかと考えました。 とはいえ私も知識がなく時間もなかったため、以前に利用したcookieの機能が「テキストボックスに入れたものを文中に反映させる」という目的と一致していたため、流用すればできるかなと安易に考えました。 なので敢えてcookieを利用する意味などないのです。 回答者様方を混乱させてしまったようで申し訳ありません。 質問の件は「簡単にできるなら」と思いましたので質問させて頂いたのですが、難しいようですので諦めようと思います。 説明して頂いたことで少し知識が増えました。ありがとうございます。