- ベストアンサー
PHPとJavaScriptの連携について
- PHPとJavaScriptの連携についてアドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。
- 親ウィンドウで子ウィンドウを開き、テキストエリアに文字を入力し値をセットする方法について質問です。nameをtext00からdata[text02]に変更した際の違いや、子ウィンドウのテキストエリアの情報を基にPHPでデータベースを検索し、ヒットした結果を親ウィンドウに渡す方法についても教えていただきたいです。
- 親ウィンドウにデータベースの値を渡した後、子ウィンドウを開く際に渡したidの値を子ウィンドウのテキストエリアに表示したいと思っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
data[text00]を、扱いたいときは、 window.opener.document.form00.elements['data[text02]'].value=document.form01.text01.value; ですね。 formの要素は、elementsの中に、名前が格納されてます。 text00の場合でも、 form.elements['text00'] で参照出来ます。
その他の回答 (1)
- hogehoge78
- ベストアンサー率80% (433/539)
2,3の質問に関してですが、 いくつか方法はあると思いますが、 mysqlから値を取得するときに、idの属性を全部hiddenタグをつくっておく <form> <?php while($row = mysql_fetch_array($query)){ echo sprintf('<input type="hidden" name="item_id" value="%s">', $row['id']); echo $row['nm_master'] . '<br />'; } </form><!--このようにformでくくって。--> このようにして、hiddenタグで値を書いておけばとりあえずhiddenの中身をjavascriptからでも取得しやすい形になると思います。 後は、Set関数で、 <script> function Set(){ var item_id = document.forms[0].elements['item_id']; if(item_id.length !== undefined){ var ids = new Array(); for(var i=0; i<item_id.length; i++){ ids.push(item_id[i].value); } //とかやってやれば //変数idsに配列として、全部のidが入っているはず。 //後はうまいことやって親windowに渡してやれば良いのでは。(例えばカンマ区切りにして文字列にしちゃうとか) }else{ //一個しかない場合はlengthが取れない。 item_id.value //で値がとれるので、親windowに渡す。 } } </script> といった感じで、実質、このご質問はjavascriptの話になるので、 この方法でこの後の処理に関してピンとこなかったら、javascriptのスレッドの方で ご質問してみてはいかがでしょう。
お礼
ご回答ありがとうございます。 一度ご回答いただいた内容を検討し、分からないようであればjavascriptの方で質問するようにします。 このたびはどうもありがとうございました。 以上、よろしくお願いします。
お礼
ご回答ありがとうございます。 質問1~3のうち、質問1についてはご教示いただいた方法で意図した動作となりました。 このたびはどうもありがとうございました。 以上、よろしくお願いします。