子画面から親画面への値の受け渡し
created: 2009-09-26 14:45 | modified: 2009-09-30 20:50 | reply: 2
[4335] 子画面から親画面への値の受け渡し
user: たま | created: 2009-09-26 14:45
こんにちわ。
お世話になります。
値の受け渡しについてご教示下さい。
①親画面の契約番号を子画面に渡す
②子画面で渡された値をDBへ問い合わせて一覧を表示
③一覧表示より「選択ボタン」で選択されたレコードの値を親画面へ渡す
①と②は出来たのですが③が出来ません。
例えば3件のレコードが子画面で表示され2レコード目の「選択ボタン」を押下しても必ず一番最初のレコードの値しか親画面へ渡せません。
色々、調べたりしましたがどうしても分からず悩んでいます。
抜粋のソース掲載いたしますのでご教示下さい。
よろしくお願い致します!
----------------------------- 子画面 --------------------------
<script type="text/JavaScript">
send_add(){
var x = document.getElementById("add").value;
var y = document.getElementById("post").value;
window.opener.document.myFORM.送付先住所.value = x;
window.opener.document.myFORM.送付先郵便番号.value = y;
}
</script>
<FORM name="myFORM">
<TABLE>
<CAPTION>検索結果一覧</CAPTION>
<TR><TH style="width: 3em;"></TH><TH>郵便番号</TH><TH>住所</TH></TR>
<?
//値の受け取り
$keinum = $_GET['output'];
//SQL Serverに接続
if (! $con = odbc_connect("web", "web"", "web"")) {
exit("データベースに接続できませんでした!");
}
$sql = "SELECT * FROM kanri WHERE keiyaku = '$keinum' order by hiduke desc";
$r = odbc_exec($con, $sql);
while(odbc_fetch_row($r)){
$item0 = odbc_result($r, "address");
$item1 = odbc_result($r, "post");
?>
<TD align="center">
<input type="button" value="選択" onClick="send_add()">
<input type="hidden" name="add" value="<?= $item0 ?>">
<input type="hidden" name="post" value="<?= $item1 ?>">
<TD align="center"><?= $item0 ?></TD>
<TD align="center"><?= $item1 ?></TD>
</TR>
<?
}
?>
</TABLE>
----------------------------- 親画面 --------------------------
<html>
<head>
<title></title>
</head>
<body>
子画面から選択した値が入ります。→<input type="text" id="送付先住所">
子画面から選択した値が入ります。→<input type="text" id="送付先郵便番号">
</body>
</html>
お世話になります。
値の受け渡しについてご教示下さい。
①親画面の契約番号を子画面に渡す
②子画面で渡された値をDBへ問い合わせて一覧を表示
③一覧表示より「選択ボタン」で選択されたレコードの値を親画面へ渡す
①と②は出来たのですが③が出来ません。
例えば3件のレコードが子画面で表示され2レコード目の「選択ボタン」を押下しても必ず一番最初のレコードの値しか親画面へ渡せません。
色々、調べたりしましたがどうしても分からず悩んでいます。
抜粋のソース掲載いたしますのでご教示下さい。
よろしくお願い致します!
----------------------------- 子画面 --------------------------
<script type="text/JavaScript">
send_add(){
var x = document.getElementById("add").value;
var y = document.getElementById("post").value;
window.opener.document.myFORM.送付先住所.value = x;
window.opener.document.myFORM.送付先郵便番号.value = y;
}
</script>
<FORM name="myFORM">
<TABLE>
<CAPTION>検索結果一覧</CAPTION>
<TR><TH style="width: 3em;"></TH><TH>郵便番号</TH><TH>住所</TH></TR>
<?
//値の受け取り
$keinum = $_GET['output'];
//SQL Serverに接続
if (! $con = odbc_connect("web", "web"", "web"")) {
exit("データベースに接続できませんでした!");
}
$sql = "SELECT * FROM kanri WHERE keiyaku = '$keinum' order by hiduke desc";
$r = odbc_exec($con, $sql);
while(odbc_fetch_row($r)){
$item0 = odbc_result($r, "address");
$item1 = odbc_result($r, "post");
?>
<TD align="center">
<input type="button" value="選択" onClick="send_add()">
<input type="hidden" name="add" value="<?= $item0 ?>">
<input type="hidden" name="post" value="<?= $item1 ?>">
<TD align="center"><?= $item0 ?></TD>
<TD align="center"><?= $item1 ?></TD>
</TR>
<?
}
?>
</TABLE>
----------------------------- 親画面 --------------------------
<html>
<head>
<title></title>
</head>
<body>
子画面から選択した値が入ります。→<input type="text" id="送付先住所">
子画面から選択した値が入ります。→<input type="text" id="送付先郵便番号">
</body>
</html>
[4336] name属性が重複してるから?
user: ゆうじ | created: 2009-09-29 00:36
こんばんわ。
子画面の実行結果のソースを確かめてみてください。
name="add" と name="post" は複数個存在することになりますね。
なのではじめの name="add" と name="post" の
値しか得られないのでしょう。
ループの中で、連番を加えるなりして
name属性が重複しないよう工夫しましょう。
子画面の実行結果のソースを確かめてみてください。
name="add" と name="post" は複数個存在することになりますね。
なのではじめの name="add" と name="post" の
値しか得られないのでしょう。
ループの中で、連番を加えるなりして
name属性が重複しないよう工夫しましょう。
<script type="text/JavaScript">
send_add(line) {
var x = document.getElementById("add"+line).value;
var y = document.getElementById("post"+line).value;
window.opener.document.myFORM.送付先住所.value = x;
window.opener.document.myFORM.送付先郵便番号.value = y;
}
</script>
<?php
$line = 0;
while(odbc_fetch_row($r)) {
$item0 = odbc_result($r, "address");
$item1 = odbc_result($r, "post");
$line++;
?>
<TD align="center">
<input type="button" value="選択" onClick="send_add(<?=$line ?>)">
<input type="hidden" name="add<?=$line ?>" value="<?= $item0 ?>">
<input type="hidden" name="post<?=$line ?>" value="<?= $item1 ?>">
<TD align="center"><?= $item0 ?></TD>
<TD align="center"><?= $item1 ?></TD>
</TR>
<?php } ?>
<TABLE>
[4337] Re:name属性が重複してるから?
user: たま | created: 2009-09-30 20:50
ゆうじさん
ありがとうございます。
おっしゃるとおり複数存在していました。
連番を振るといった案は浮かびませんでした。
おかげで解決できました。
勉強になりました!
ありがとうございました!
ありがとうございます。
おっしゃるとおり複数存在していました。
連番を振るといった案は浮かびませんでした。
おかげで解決できました。
勉強になりました!
ありがとうございました!