親ウィンドウに値が戻らない

このQ&Aのポイント
  • 子ウィンドウで選択された部分のコードを親ウィンドウにセットしたいが、値が戻らない問題が発生しています。
  • JavaScriptを使用して親ウィンドウの項目に値を代入していますが、決定ボタンを押しても値が反映されていません。
  • 解決方法をご教示いただけると幸いです。
回答を見る
  • ベストアンサー

親ウィンドウに値が戻らない

親ウィンドウから、子ウィンドウを開き、ラジオボタンで、選択された部分のコードを親ウィンドウにセットしたいのですが、決定ボタンを押しても、値が戻りません。JavaScript部分で、親ウィンドウの項目に値を代入 しているつもりなのですが・・・・。 <?php $tokum = ""; /* 得意先マスターの値をもらう配列 */ /* 初期画面の表示 */ $sql = "select * from tokump00 order by tatkcd asc limit 0,15"; $result = mysql_query($sql,$con); $num = mysql_num_rows($result); ?> <script type="text/javascript"> <!-- function ReturnCode() { for($i=0;$i<15;$i++) if(document.gamen.code.checked) window.opener.document.syoukai.tkcd.value=document.gamen.code.value; } --> </script> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>得意先コード検索</title> </head> <body bgcolor="#FFEEFF"> <form name="gamen" action="codekensaku.php" method="post"> <input type="button" value="決定" onClick="ReturnCode()"><br><br> <table border="1"> <tr> <th>チェック</th> <th>コード</th> </tr> <?php for($i=1;$i<16;$i++) { $tokum = mysql_fetch_array($result); ?> <tr> <td><input type="radio" name="code" value="<?php echo($tokum[tatkcd]); ?>"> <td><?php echo($tokum[tatkcd]); ?></td> </tr> <?php } ?> </table> </form> </body> </html>

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 試したとかではないのですが、 function ReturnCode() { for($i=0;$i<15;$i++) if(document.gamen.code.checked) window.opener.document.syoukai.tkcd.value=document.gamen.code.value; } for ( i=0;i<15;i++) ではないでしょうか。 あとは、ラジオボタンの取得方法ですが、配列で取得することになると思います。 URLを参考にしてみてください。

参考URL:
http://www.tohoho-web.com/js/form.htm#ElmButton
mimi0115
質問者

お礼

ありがとうございました。ずっとPHPだけで書いていたのですが、JavaScriptの機能を活用してみよう!と思ったら、うっかり、変数のつけ方が、PHPのほうになっていました。すごく、うっかりしたミスですね。気をつけます。おかげで動くようになりました。

関連するQ&A

  • nl2br()の記入例

    PHPを始めたばかりで行きづまってしまいました。 MySQLを利用したデータの出し入れなのですが、テキストエリア内の文章の改行についてです。 input.php(入力)⇒confirm.php(確認)⇒end.php(完了) という流れなのですが、input.phpで入力した内容をconfirm.phpで確認すると文章の改行がされてなかったので色々検索した結果、nl2br()使うというところまでは解ったのですが、実際どのように書くのか解りません・・・。 例えばこのようなソースの場合、どのような記述をすればいいのでしょうか? <html> <head> <title>薬屋さん</title> </head> <body> <?php $con = mysql_connect('aaa', 'bbb', 'ccc'); if (!$con) { exit('データベースに接続できませんでした。'); } $result = mysql_select_db('ddd', $con); if (!$result) { exit('データベースを選択できませんでした。'); } $result = mysql_query('SELECT * FROM kusriya', $con); echo "<dl>\n"; while ($data = mysql_fetch_array($result)) { $id = $data['id']; $shop = htmlspecialchars($data['shop']); $address = htmlspecialchars($data['address']); $phone = htmlspecialchars($data['phone']); $comment = htmlspecialchars($data['comment']); $navi = htmlspecialchars($data['navi']); $con = mysql_close($con); if (!$con) { exit('データベースとの接続を閉じられませんでした。'); } ?> <form method="post" action="test_confirm.php"> <table> <tr> <th>ID</th><td><input type="text" name="id" /></td> </tr> <tr> <th>店名</th><td><input type="text" name="shop" /></td> </tr> <tr> <th>住所</th><td><input type="text" name="address" /></td> </tr> <tr> <th>電話</th><td><input type="text" name="phone" /></td> </tr> <tr> <th>コメント</th><td><textarea name="comment" cols="80%" rows="5"></textarea></td> </tr> <tr> <th>ルート</th><td><textarea name="navi" cols="80%" rows="5"></textarea></td> </tr> </table> <input type="submit" value="送信" /> <input type="reset" value="リセット" /> </form></body> </html> よろしくお願いします。

    • 締切済み
    • PHP
  • 動的なtableの値を取得したい

    いつもお世話になります。 見よう見まねでやっている超初心者です。 下記の様なテーブル(phpで読み込んでいますので実際は動的です。) の回答ボタンをクリックすると テーブル下の<INPUT type="text" name="kotae">に ボタンをクリックされた行のb列の値を入れたいと思っています。 function kaito()をどのように書いたら取得できるか悩んでいます。 初心者なもので具体的な回答でしたら助かります。 ご教授の程どうぞよろしくお願い致します。 <html> <head> <meta content="text/html; charset=utf-8" /> <script> </script> </head> <body> <table width="100" border="1"> <tr> <th width="30" scope="col">a</th> <th width="30" scope="col">b</th> <th width="40" scope="col">c</th> </tr> <tr> <td>1</td> <td>2</td> <td><input type="button" value="回答" onclick="kaito()"/></td> </tr> <tr> <td>5</td><td>3</td> <td><input type="button" value="回答" onclick="kaito()"/></td> </tr> <tr> <td>5</td> <td>4</td> <td><input type="button" value="回答" onclick="kaito()"/></td> </tr> <tr> <td>5</td> <td>5</td> <td><input type="button" value="回答" onclick="kaito()"/></td> </tr> </table> <INPUT type="text" name="kotae" size="12" > </body> </html>

  • mysql php ループ列の行の値を比べたい

    php、mysqlを見よう見まねでやっている 初心者です。 以下のような表をphpで作りました。 これでできた表の d列の行の値(文字)を全て比べて 値がその他の行と一行でも違っていたら (他の行と揃って同じでなかったら) errorを出したいと思っています。 どのような式を書いたらd列の全ての行の 値(文字)を調べ、errorを出すことが できるのでしょうか? <tr> <th>a</th> <th>b</th> <th>c</th> <th>d</th> </tr> <? while ( $row = mysql_fetch_array( $result )){ ?> <tr> <td><?= $row['a'] ?></td> <td><?= $row['b'] ?></td> <td><?= $row['c'] ?></td> <td><?= $row['d'] ?></td> </tr> <? ; } ?> 結果 a   b  c    d aaa bbb ccc ddd aaa bbb ccc ddd aaa bbb ccc dde→(errorを出したい) errorを出せれば下記のようなif文にしたいと思っています。 <? if($d==error){XXX;} else{ooo;} ?> 上記式も見ようまねでよくわかっていなく、 質問が理解して頂けるかどうかですが、 どうかご教授の程よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPでMySQLにデーターを追加するところで壁に当たってしまいました

    PHPでMySQLにデーターを追加するところで壁に当たってしまいました。 PHP5.3&MYSQL5.1 1.フォームへ入力 2.確認画面 3.MySQLへデーター追加 1.form <html> <head><title></title></head> <body> <form method="post" action="conf.php"> <table> <tr><th>番号</th><td><input type="text" name="id" /></td></tr> <tr><th>タイトル</th><td><input type="text" name="title" /></td></tr> <tr><th>テキスト</th><td><textarea name="cont" cols="40" rows="5" /></textarea></tr> <tr><th>日付け</th><td><input type="text" name="update" size="10" /></td></tr> </table> <input type="submit" value="送信" /><input type="reset" value="リセット" /> </form> </body> </html> 2.確認画面 <html> <head><title></title></head> <body> <table> <tr><th>番号</th><td><?php echo htmlspecialchars($_POST["id"]) ?></td></tr> <tr><th>タイトル</th><td><?php echo htmlspecialchars($_POST["title"]) ?></td></tr> <tr><th>テキスト</th><td><?php echo htmlspecialchars($_POST["cont"]) ?></td></tr> <tr><th>日付け</th><td><?php echo htmlspecialchars($_POST["update"]) ?></td></tr> </table> <form method="post" action="upld.php"> <input type="hidden" name="did" value="<?php echo htmlspecialchars($_POST["id"]) ?>" /> <input type="hidden" name="title" value="<?php echo htmlspecialchars($_POST["title"]) ?>" /> <input type="hidden" name="cont" value="<?php echo htmlspecialchars($_POST["cont"]) ?>" /> <input type="hidden" name="update" value="<?php echo htmlspecialchars($_POST["update"]) ?>" /> <input type="submit" value="登録" /> </form> </body> </html> 3.MySQLへデーター追加 <?php $Con = mysql_connect("localhost","root",""); if ($Con == false) {dir ("MySQLの接続に失敗。");} if (!mysql_select_db("phpdata",$Con)) {dir ("データーベース接続に失敗。");} $sql = "insert into daimoku(id,title,cont,update) values('".$_POST["id"]."','".$_POST["title"]."','".$_POST["cont"]."','".$_POST["update"]."')";//SQL文の作成 $res = mysql_query($sql) or die(mysql_error());//クエリの実行 mysql_close($Con);//切断 ?> <html> <head> <title></title> </head> <body> <p>ご登録ありがとうございました。</p> <a href="01.php">戻る</a> </body> 以上のコードでデーターの追加が出来ません。 どなたか教えていただけないでしょうか?

    • ベストアンサー
    • PHP
  • ページ間の値の受け渡しについて

    緊急でPHPを用いて開発しなければならず、値の受渡し方法が調べても 結果がうまく出来ないために教えて下さい。 説明がうまくできないので、ソースの一部を下記に記載しております。 【keikaku.php】 <?php $link = DB接続 $query = "SELECT (1) , (2) , (3) FROM KEIKAKU WHERE 営業所= '東京'"; $res_result = mysql_query($query,$link); echo ("<form action='keikaku_input.php' method='POST'>"); while($row = mysql_fetch_array($res_result)){  echo ("<table border=1>");  echo ("<tr>");  echo ("<td><input type='radio' name='name' value=''></td>");  echo ("<td>");  echo $row['(1)'];  echo ("</td><td>");  echo $row['(2)'];  echo ("</td><td>");  echo $row['(3)'];  echo ("</td>");  echo ("</tr>"); } echo ("<input type='submit' value='次へ'>"); echo ("</form>"); ?> というSQLで一覧を表示させて、対象行のラジオボタンが選択されると (1)と(2)の値を使い、【keikaku_input.php】で更に別のSQLを実行後に 結果を表示させる事を行ないたいのです。 【keikaku.php】→【keikaku_input.php】へ(1)と(2)の値を渡したい場合 はどのようにすれば良いかご教授願えませんでしょうか?

    • ベストアンサー
    • PHP
  • データベースにある値でリストボックスを作成

    現在、PHPとMySQLを使用したプログラムを作成しているのですが、フォームのリストボックスの値にMySQLに登録されている値を使用したいのですがどうしたらよいのでしょうか? ?> <tr><td><b>作業名</b></td><td> <select name="inpWorkName"> <? $Count = 0; while($row=mysql_fetch_array($rs)) { for($j=0;$j<$num;$j++) { $WorkName[$Count] = $row[0]; } ?> <option value="<?=$WorkName[$Count]?>"><?=$WorkName[$Count]?> <? $Count++; print("</tr>"); } ?> </select> </td></tr> <? 上記のように書いたのですが、リストボックスに値が表示されません。 お手数かとは思いますが、よろしければ教えてください。 お願いします。

    • ベストアンサー
    • PHP
  • 【PHP】smartyとPHPの記述違いとメリット

    smartyというのが、デザインとプログラムを分けれるというので 使ってみたのですが、 //--------------------smarty--------------------- <table border=1> <tr> <th>{$table.title}</th> </tr> {foreach item=result from=$data_list} <tr> <td>{$result[0]}</td> </tr> {/foreach} </table> と、smarty用の記述をHTML内にいろいろ書かなければならず //------------------php---------------------- <table border=1> <tr> <th><?=$table[title] ?></th> </tr> <?php foreach($data_list as $key => $value){ ?> <tr> <td><?= $value ?></td> </tr> <?php } ?> </table> とHTML内にPHPをいろいろ書くのと  あまり大差無い気がして どういう点がよいのがイマイチ分かりません。 smartyは 使う メリットは どういうものがあるのでしょうか。

    • ベストアンサー
    • PHP
  • MySQLのデータを使ってプルダウンの値を動的に変更したい

    以下の授業プルダウンですが、 任意の授業が選択されたときに、 その授業の内容を大分類の下の中分類(middle_class)をDBで検索して、次の中分類プルダウンの変数に渡したいのですが、当然のごとくでき ません。 大分類で画面遷移して中分類の画面へというように、何回も検索画面 を分けるのならいいのですが。何度も処理をする必要があるので、 絶対に画面遷移しない。orしているように見えないようにしたいです。 下記サイト一番役立つかなぁと思いましたが、マスターデータはDBから検索させたい。 Javascriptsに直書きは、メンテナンスが難しい。 http://www.cc.kyoto-su.ac.jp/~ushitaki/JavaScriptExample/introselect2.html <SCRIPT LANGUAGE="JavaScript"> <!--- function getcategory(){ ckind=document.category.top.selectedIndex; cvalue=document.category.top.options[ckind].value; <?php if( $_REQUEST['$top']){ $MySQL['HOST'] = '127.0.0.1'; $MySQL['USER'] = 'root'; $MySQL['PASSWORD'] = '********'; $MySQL['DATABASE'] = 'category'; $MySQL['conn'] = @mysql_connect($MySQL['HOST'],$MySQL['USER'],$MySQL['PASSWORD']) or exit('Can not access MySQL DB'); mysql_select_db($MySQL['DATABASE'], $MySQL['conn']); $MySQL['query'] = "set names sjis"; $MySQL['result'] = mysql_query($MySQL['query'], $MySQL['conn']); $MySQL['query'] = "SELECT middle_class_code, middle_class_name FROM middle_class where top_class_code = ".$_REQUEST['$top'].""; $MySQL['result'] = mysql_query( $MySQL['query'],$MySQL['conn'] ); $count = 0; while($table4[$count] = mysql_fetch_array($MySQL['result'], MYSQL_NUM)) { $table3[$count] = $table4[$count]; $count = $count + 1; } if(cvalue==$top){ for($i = 0; $i < $count; $i++ ){ print("document.parts_category.middle.options[".$i."].text=".$table3[$i][1].";"); print("document.parts_category.middle.options[".$i."].value=".$table3[$i][0].";"); } } } ?> } //---> </SCRIPT> </HEAD> <BODY LANG="ja-JP" TEXT="#0066cc" LINK="#cc0033" VLINK="#ff9900" BGCOLOR="#ffffff" DIR="LTR"> <TABLE WIDTH=1072 BORDER=1 CELLPADDING=2 CELLSPACING=0 STYLE="page-break-before: always"> <COL WIDTH=531> <COL WIDTH=531> <TR> <TD WIDTH=531 HEIGHT=25> <P> 授業別クラス </P> </TD> <TD ROWSPAN=7 WIDTH=531> <P><BR> </P> </TD> </TR> <TR> <TD WIDTH=531 HEIGHT=20> <P>授業検索</P> </TD> </TR> <TR> <TD WIDTH=531 HEIGHT=20> <FORM NAME="category"> <P><FONT SIZE=2 STYLE="font-size: 9pt">大分類 <SELECT NAME="$top" STYLE="width: 2.43cm; height: 0.56cm" onChange="this.form.submit()"> <OPTION VALUE="x">大分類 <OPTION VALUE="MATH">数学 <OPTION VALUE="JAPE">国語 <OPTION VALUE="JAPH">日本史 <OPTION VALUE="CHEM">化学 <OPTION VALUE="PHYS">物理 <OPTION VALUE="FORL">外国語 <OPTION VALUE="WORH">世界史 </OPTION> </SELECT></FONT></P> </TD> </TR> <TR> <TD WIDTH=531> <P><FONT SIZE=2 STYLE="font-size: 9pt">中分類 <SELECT NAME="middle" STYLE="width: 4.52cm; height: 0.56cm" ONCHANGE="getparts()"> <OPTION VALUE="x" SELECTED>まず大分類を選んでください <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"> <OPTION VALUE="x"></OPTION> </SELECT></FONT></P> </TD> </TR> <TR> <TD WIDTH=531> <P><INPUT TYPE=SUBMIT VALUE="検索" STYLE="width: 1.08cm; height: 0.58cm"></FORM> </P> </TD> </TR> </TABLE>

    • 締切済み
    • PHP
  • セレクトボックスの値から料金を計算したい

    お世話になります。 現在、HTML中に下記のソースを記述しセレクトボックスの数量が選択されたときに自動計算をしようとしています。 ------------------------------------------------------------------- <table summary="ご購入内容"> <tr> <th><p>カレンダー</p></th> <td class="price">1,000円(税込)</td> <td class="select"> <input type="hidden" name="field16_name" value="カレンダー" /> <input type="hidden" name="field16_req" value="no" /> <select type="select" id="item1" name="field16_text" accesskey="a" tabindex="1" onchange="keisan();"> <option value="0"> 0部</option> <option value="1"> 1部</option> <option value="2"> 2部</option> <option value="3"> 3部</option> <option value="4"> 4部</option> <option value="5"> 5部</option> </select></td> </tr> </table> <table summary="小計金額"> <tr> <th><p>小計金額</p></th> <td><input type="text" id="sender-shoukei1" name="field21_text" value="0" accesskey="k" tabindex="6" /> 円(税込)</td> </tr> <tr> <th><p>送料</p></th> <td> <input type="text" id="sender-postage1" name="field22_text" value="0" accesskey="k" tabindex="7" /> 円(税込)</td> </tr> </table> <table summary="合計金額" class="inner-02 m20"> <tr class="gokei"> <th>合計金額</th> <td> <input type="text" id="sender-goukei" name="field29_text" value="0" accesskey="k" tabindex="14" /> 円(税込)</td> </tr> </table> ------------------------------------------------------------------- <script type="text/javascript"> /* <![CDATA[ */ function keisan(){ /* 商品 */ var price1 = document.form.field16_text.options[document.form.field16_text.selectedIndex].value; var field21_text= parseInt(price1)*1470 ; /* 小計 */ document.form.field21_text.value = addFigure(field21_text); /*送料 */ var price1p = 0; if ( price1 < 2 ) { price1p = price1 * 290; } else { price1p = 0; } var field22_text = parseInt(price1p); if ( field21_text > 5000 ) { field22_text = 0; } document.form.field22_text.value = addFigure(field22_text); /* 合計 */ var field29_text = parseInt(field21_text); document.form.field29_text.value = addFigure(field29_text); function addFigure(str) { var num = new String(str).replace(/,/g, ""); while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return num; } } /* ]]> */ </script> ------------------------------------------------------------------- しかし、「'document.form.field16_text'はNullまたはオブジェクトではありません」とエラーが出てしまいます。 アンダーバーは利用できないのでしょうか?どこに問題があるのかお教えください。 どうぞ宜しくお願いいたします。

  • 集計表が作れない

    集計表が作れない お世話になります あるレンタルサーバーでウェブページを作成しています 環境はWin vista PHP5 apache2.2 mysqlです。レンタルサーバーの都合によりViewが作成できませんので PHPで集計表を作成しようと思っています。一覧のcolumn列の総数を求めようというものです。 下記のコードのようにしたのですがうまく表示できません。よろしくご教示願います。 これより上省略ーーーーーーーーーーー <table border=1> <tr> <th>合計</th> </tr> <?php while($row = mysql_fetch_assoc($result)) { $mino = $row['suu']; $goukei = $row['kei']; $row['kei'] = sum($mino);//←ここがうまく書けていない? $data_id = $row['id']; echo '<tr>'; echo '<td><input type="radio" name="select" value='.$data_id.'></td>'; echo '<td>'.$data_id.'</td>'; echo '<td>'.$row['kei'].' </td>'; echo '</tr>'; } ?> </table> <input type="submit" value="詳細を見る"> </form> <?php

専門家に質問してみよう