TEXT欄の表示について

[新着] Webテンプレートを仮オープンしました



0   名前: おかか : 2004/09/02 14:07
またもや、皆さんのお力を貸してください。

1つのテキストに値が入力されたら、それとは別のテキストに入力された
テキストのデータをいれたいのですが、なにかいい方法はありませんか?

できれば他のページを開きたくはないのですが。。

1   名前: U D : 2004/09/02 15:24
それはできますが、問題は、
どういうときに、その別のテキストに、入力されたデータをいれるかです。
例えば1文字入力されるごとに移すのか、
ボタンを押したときに移すのか、テキストボックスからマウスが離れたときとか、
まぁいろいろできるはずです。

フォーカスが外れたときが一番良いんじゃないかなー。
まぁとりあえずそこのところを教えてください。

2   名前: おかか : 2004/09/02 15:30
UDさんがおしゃっている通り、
1文字入力されるごとに移すのではなく、
入力が完了してフォーカスが外れたとき、いっぺんに
データを入れたいと思っています。

3   名前: U D : 2004/09/02 15:41
とりあえず、JavaScriptは分かりますか?
予想外に返信が超速だったのでまだ作れてません。。。
ちょっと待ってくださいね。

4   名前: U D : 2004/09/02 15:49
<head>〜</head>内に

<script type="text/javascript"><!--
function text(){
a=document.form1.text1.value;
document.form1.text2.value=a;
}
//--></script>

<body>〜</body>内に

<form name="form1">
<input type="text" name="text1" size="20" onblur="text()">
<input type="text" name="text2" size="20">
</form>

ふう、確認とるのに時間がかかってしまった。。。
こんなんでいいと思う。(多分)

5   名前: おかか : 2004/09/02 16:20
UDさんのに教えていただいたようにしたみたら
無事データを移すことができました。
javascriptはまだまだ使いきれていなかったので助かりました。
ありがとうございました。

6   名前: おかか : 2004/09/03 11:05
解決したはずなのですが、追加でお願いします。

<head>〜</head>内

<script type="text/javascript"><!--
function text(){
a=document.form1.text1.value;
document.form1.2.value=a;
}
//--></script>

<body>〜</body>内に

<form name="form1">
<input type="text" name="text1" size="20" onblur="text()">
<input type="text" name="2" size="20">
</form>

上記のようにtextの名前を数字に設定しているとデータが移りません。。

数字に設定するのはまずいのでしょうか?
私の場合、データベースとの連携をしているので、
HTMLの記述をwhileでまわしています。
なので、一つ一つのtextの名前を変えなくてはいけないで
数字を使って名前をつけているのですが。。


7   名前: Sinryow : 2004/09/03 12:14   [URL
> 数字に設定するのはまずいのでしょうか?

数字で始まる文字は変数名等に使えないので無理です。

> 私の場合、データベースとの連携をしているので、
> HTMLの記述をwhileでまわしています。
> なので、一つ一つのtextの名前を変えなくてはいけないで
> 数字を使って名前をつけているのですが。。

こんな感じでいかがでしょう?

<html>
<head>
<script type="text/javascript"><!--
function text(mainform, subform){
a=document.form1.elements[mainform].value;
document.form1.elements[subform].value=a;
}
//--></script>
</head>
<body>
<form name="form1">
<input type="text" name="text1" size="20" onblur="text('text1', 'text2')">
<input type="text" name="text2" size="20">
<br>
<input type="text" name="text3" size="20" onblur="text('text3', 'text4')">
<input type="text" name="text4" size="20">
<br>
<input type="text" name="text5" size="20" onblur="text('text5', 'text6')">
<input type="text" name="text6" size="20">
<br>
</form>
</body>
</html>

8   名前: おかか : 2004/09/03 13:13
>数字で始まる文字は変数名等に使えないので無理です。

初めて知りました。恥ずかしながら・・・

Sinryowさんが書いてくださったコードですが、
少し違うように感じました。
私の場合、

$db->Sql("SELECT MODEL一覧.* FROM MODEL一覧 WHERE (((MODEL一覧.MODEL)='$param{'MODEL'}'));");
while( $db->FetchRow() ){
 undef %Data;
 %Data = $db->DataHash();
print<<"END";
 <INPUT TYPE="text" name=$Data{'name'}>
END
}

というようにループでまわしているので
1つずつ<INPUT TYPE="text" name="text1">
というように名前を付けれません。
なので、データベースから持ってきている主キーのコードを
名前につけようとしていました。

しかし、数字で始まる文字は変数名等に使えないとの事だったので
名前を
$A = "T".$Data{'コード'};
<INPUT TYPE="text" name=$A>
としてみたら、無事データを移すことができました。

Sinryowさん、
ありがとうございました。

一覧へ戻る