宜しくお願いいたします。

今いじっているページについての質問なのですが、既にtextareaに文章が入っていて、それを消さずに違う文章を追加したいのです。文章の追加はボタン(JavaScriptを使っています)で行います。

Ajaxなども調べたのですが難しく良く分からなかったので、ページを開いたときに一番最初に読み込む命令で「textareaに文章を追加するなら、既にあるものを保持しろ」という命令を書きたいと思います。

どなたかご存知であればご教授願います。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

こういうことでしょうか?



<html>
<head>
<script language="javascript">
function add(val){
var hoge=document.getElementById('hoge');
hoge.value+=val;

}
</script>
</head>
<body>
<form action="" method="get">
<textarea id="hoge" name="hoge">ほげほげぇ・・・</textarea>
<input type="button" value="あああ" onClick="add('あああ')">
<input type="button" value="いいい" onClick="add('いいい')">
<input type="button" value="ううう" onClick="add('ううう')">
<input type="submit" value="go">
</form>
</body>
</html>
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

それで、また質問なのですが<textarea id・・・>ってなんでしょう?
今の設定では
フォームの名前:Form1 
テキストエリアの名前:MSG
ボタンを押して追加するようになっている文章は複数行に渡っている
という感じなのですが

同じようにやればできるのでしょうか??
宜しくお願いいたします。

お礼日時:2007/07/17 14:58

#4です。



保存したテキストを読み出すCGIスクリプトがhistory.cgiだとして・・・
history.cgiでは結果を次のように返す事にします。(perlの例)
print "Content-Type: application/x-javascript\n\n";
print <<_VAR_; # ここでは例として固定値にしています。
var history1='text1';
var history2='text2';
_VAR_

HTMLから外部javascriptとしてhistory.cgiを読み込みます。
<script type="text/javascript" src="history.cgi"></script>
これで、このページではjavascriptの変数、
history1 と history2 にCGIスクリプトで読み出した値が入っているので
ボタンそのものをjavascriptで書き出すとか、valueを変更するとか、
ボタンを押したときに挿入する値にするとか、好きなように扱えます。

また、保存するスクリプトがログファイル/DBとは別の'history.js'とかに吐き出して、それを読み込んでもいいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
スクリプトでいけました!

お礼日時:2007/07/18 10:21

Ajax関連で有名なところ。

サンプルも小改造で使えるかも。
http://www.openspc2.org/JavaScript/Ajax/index.html
(小難しい基本をすっとばして「prototype.js」の使い方を憶えるだけでもいいかも…)
ただし、Ajaxでは文字コードまわりがやっかいなので日本語を扱うなら注意が必要らしいです。

CGI側が、Javascriptで利用される事を前提に、
最新データを外部Javascriptファイルとして吐き出すようにしていればAjaxに拘る必要もないのかも。(ブラウザのキャッシュ対策は必要だけど。)
    • good
    • 0
この回答へのお礼

ありがとうございます!!
このサイト、勉強につかってみます!

>最新データを外部Javascriptファイルとして吐き出すようにしていれば
これはどういう風にすればいいんですか??
初心者で申し訳ありません。

お礼日時:2007/07/17 17:23

ああ、なるほど・・・


それでajaxうんぬんという文言が質問のなかにあるのですね・・・。

まぁまさにajaxの世界なので、データをajaxでとってきて、
ボタンに割り振っていくしかないでしょうね。

つきましてはajaxの理解度をあげていくしかないので、
さすがにここでは回答できません。
どこかのサイトで「ajaxとはこういうものか」と理解できるまで
ちょっとがんばってみてください
    • good
    • 0
この回答へのお礼

やはりそうなりますかぁ。。。
わかりました、ありがとうございました。

PS:ajaxについて理解できそうないいサイトがあれば教えてください。

お礼日時:2007/07/17 16:12

ではちょっと改造して、こんなかんじで・・・


複数行にわたる文字列は\nという改行マークをつかって書いてください

<html>
<head>
<script language="javascript">
function add(val,f){
f.MSG.value+=val;
}
</script>
</head>
<body>
<form action="" method="get">
<textarea name="MSG">ほげほげぇ・・・</textarea>
<input type="button" value="あああ" onClick="add('あああ1行目\nあああ2行目\nあああ3行目',this.form)">
<input type="button" value="いいい" onClick="add('いいい1行目\nいいい2行目\nいいい3行目',this.form)">
<input type="button" value="ううう" onClick="add('ううう1行目\nううう2行目\nううう3行目',this.form)">
<input type="submit" value="go">
</form>
</body>
</html>

この回答への補足

すみません、追記です。
そのcgiファイルでは、テキストエリア(MSG)に入れた文章をデータベース(history)に登録し、それを新しい順にソートして取り出し、
取り出したものをボタンにて追加したいのです。

今から一時間以内のデータは全て追記するようにしてあります。
SELECT id, カラム名 FROM history WHERE Exectime > DATE_SUB(NOW(), INTERVAL 1 HOUR)
※cgiファイルに記述

補足日時:2007/07/17 15:33
    • good
    • 0
この回答へのお礼

やりたいことはあってます!
でもごめんなさい、私が書き忘れていたんですが
ボタンを押して追加したい文章は他のcgiファイルに記載されていて
外部から呼び込みたい感じなんです。

可能でしょうか??

お礼日時:2007/07/17 15:32

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q同じページにあるtextarea間で文章を移動させたい

宜しくお願いします。

表題の件なのですが、textarea2にはDBからとってきた(文章)データが入っており、その文書をそのままtextarea1に移動させたいのですがどうすればいいのか教えてください。

移動はボタンで行います。「文章を追加」というボタンをtextarea1にくっつけてそれを押すとtextarea2の中身が追加されるようにしたいのです。

どうぞ宜しくお願いいたします。

Aベストアンサー

function hoge() {
var text1 = document.フォーム名.textarea1.value;//textarea1の内容
var text2 = document.フォーム名.textarea2.value;//textarea2の内容

text1 += text2;//付け加え

document.フォーム名.textarea1.value = text1;

}

でボタンにonclickイベントでhoge()を呼べばいかがでしょうか?

Q特定のページを表示するとクッキーで文章が変わる・追加されるようにするには

私は今、長編小説をHPに公開しようと思っています。
キャラクター紹介のページを作ろうと思っているのですが、
読んだ読者さんによって表示される内容を変えたいのです。
例えば第一章で登場するAとBというキャラがいたとします。
読者さんが第一章を読んだらキャラ紹介のページにAとBのキャラクターの紹介が加わる。
という形にしたくて、cookieを使用しようと思うのですが、
なにぶんこのような操作ははじめてでしてどうしたらよいのかわかりません。
各章の最後のページにクッキーを食べさせるjavascriptを書いて、
キャラ紹介のページでクッキーを読み込み、キャラの説明文を表示したいです。
物語が進むにつれて、他キャラが増えたり、説明文に追記が加わるようにするにはどうしたら良いでしょう。
cookie使用があまりなく、調べましたがよくわかりませんでしたので詳しく教えていただけましたら幸いです。

Aベストアンサー

面白い発想ですねー!
手作業になるので若干面倒ですが、とりあえずは以下の方法でやれると思います。

1. 小説ページのファイル名を index.html、2.html、3.html…みたいに連番にする

2. 小説ページに読み込ませる外部JavaScriptファイルを用意し、下記をコピペする

function myCharacters(n){
var DD=new Date();
var newday = new Date(DD.getFullYear(),DD.getMonth()+1,DD.getDate());
var URI = location.href.match(/\/([\d]*)(.\w{3,4}?)$/i);
var val = (URI&&URI[1])? URI[1]:1;
var tmp = n+"="+val+"; "+"expires="+newday.toString()+"; ";
document.cookie = tmp;
}

3. 小説ページのヘッダで2で作成したjsファイルを読み込む

<script type="text/javascript" src="js/mychar.js"></script>

その下に関数を実行するソースを書きます。

<script type="text/javascript">
//<![CDATA[
myCharacters("作品を判別する半角英数キーワード");
//]]>
</script>

学園モノならmyCharacters("gakuen")とか、被らなければ何でもOK

4. キャラクター紹介ページをPHPファイルで作成する(拡張子をphpにするだけ)

4. 3で作成したファイルに紹介文を書く。

発行されるCookieには作品ごとのキーワードと、ファイル名と同じ番号が保存されるので
それにあわせて条件を分岐させ、紹介文を書きます。

例:2.html → 2

<h1>キャラクター紹介</h1>

<h2>主人公</h2>
<p>この作品の主人公。正義感は強いが気が弱い</p>
<h2>ヒロイン</h2>
<p>主人公に思いを寄せる学園のマドンナ。シャワーをよく覗かれる</p>

<?php if(isset($_COOKIE["gakuen"]) && $_COOKIE["gakuen"] >= 2): //二章以降読んでいたら表示 ?>
<h2>番長</h2>
<p>主人公をライバル視している学園の番長。痩せてた時はイケメンだったらしい。
myCharacters("gakuen")をヘッダに書いた2.htmlを表示していない場合は表示されない</p>
<?php endif; ?>

<?php if(isset($_COOKIE["gakuen"]) && $_COOKIE["gakuen"] >= 3): //三章以降読んでいたら表示 ?>
<h2>謎の覆面</h2>
<p>ミステリアスな雰囲気漂う覆面男。怪しく光る紫のブーメランパンツがトレードマーク。
myCharacters("gakuen")をヘッダに書いた3.htmを表示していない場合は表示されない</p>
<?php endif; ?>

PHPが使えないサーバーだったら表示部分をJavaScriptで行えば一応出来ます。

参考URL:http://tenderfeel.xsrv.jp/javascript/707/

面白い発想ですねー!
手作業になるので若干面倒ですが、とりあえずは以下の方法でやれると思います。

1. 小説ページのファイル名を index.html、2.html、3.html…みたいに連番にする

2. 小説ページに読み込ませる外部JavaScriptファイルを用意し、下記をコピペする

function myCharacters(n){
var DD=new Date();
var newday = new Date(DD.getFullYear(),DD.getMonth()+1,DD.getDate());
var URI = location.href.match(/\/([\d]*)(.\w{3,4}?)$/i);
var val = (URI&&URI[1])? URI[1]:1;
var tmp ...続きを読む

Qjavascriptでtextareaに文字列を追加したい

textareaの最後尾に文字列を追加したいです。

いろいろサイトを検索してみたのですが、解決できず困っています。
 <form>中に<textarea>とボタンを設定しておきボタンを押すと
 文字列を最後尾に追加する。
というのはありました。

私は、ボタンは無しで、画面を読み終わったタイミングで、textareaの最後尾に文字列を追加したいのです。
(仕様で、bodyタグにonloadを記述することは出来ません。)
(またcgiでHTML記述を生成しています。)

が、どこかのサイトにあった例を見ても、どのように自分のソースに
反映したらよいのか分からず・・・。
サイトにあった例を参考に、下記のように記述してみましたが駄目でした。

<textarea name="textArea_A"></textarea>
<SCRIPT LANGUAGE="JavaScript">
<!--
var objTextarea = document.getElementsByName('textArea_A')[0];
objTextarea.value += "AAA";
//-->
</SCRIPT>

(これで、<textarea name="textArea_A">AAA</textarea>
となってくれると良いのですが・・・。)

トンチンカンな意味不明な点があるかも知れませんが、
どうか宜しくお願いいたします。

textareaの最後尾に文字列を追加したいです。

いろいろサイトを検索してみたのですが、解決できず困っています。
 <form>中に<textarea>とボタンを設定しておきボタンを押すと
 文字列を最後尾に追加する。
というのはありました。

私は、ボタンは無しで、画面を読み終わったタイミングで、textareaの最後尾に文字列を追加したいのです。
(仕様で、bodyタグにonloadを記述することは出来ません。)
(またcgiでHTML記述を生成しています。)

が、どこかのサイトにあった例を見ても、どのように自...続きを読む

Aベストアンサー

そのHTML、他にも name="textArea_A" を持つタグがありませんか?

<textarea name="textArea_A" id="TEXTAREAA">

var objTextarea = document.getElementById('TEXTAREAA');

の様に変更したらどうでしょう?

# id="TEXTAREAA" を持つタグが他にあれば、それは HTML として反則です。別の名前にしてください。

Q