下記スクリプトにて
親ページからモーダルウィンドウを開き、
モーダルウィンドウ内のボタン1押下後、Ajaxで、CGIからデータを受けとり、
受け取ったデータを表示し、
ボタン2押下後、モーダルウィンドウを閉じ、
親ページのテキストボックスにモーダルから受け取ったデータを表示させたいと思っております。
わかりづらくて申し訳ございません。
下記ソースコードではAjaxの動作がうまくいかないようなのですが、
問題の個所をご指摘いただけますでしょうか。
【親HTML】
JavaScript
1<script> 2function showModalWindow() { 3 //モーダルダイアログ側へ送るデータを準備 4 var company = document.getElementById("INPUT").value; 5 var sendArguments = new Array( company ); 6 7 // モーダルダイアログを開いて、結果のデータを受け取る 8 var retString = showModalDialog("pmodal.html", sendArguments,'menubar=no,height=400,width=300',"dialogHeight: 300px; dialogWidth: 400px; center: 1;"); 9 10 // 受け取った結果を表示 11 document.getElementById("OUTPUT").value = retString; 12 13} 14</script> 15<input type="text" id="INPUT" name="INPUT"> 16<input type="button" value="コード検索" onclick="showModalWindow();" /> 17<input type="button" id="OUTPUT" name="OUTPUT">
【pmodal.html】
JavaScript
1<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script> 2<script type="text/javascript"> 3 4 // 親ウインドウからデータを受け取る 5 function setParams() { 6 var parentData = window.dialogArguments; 7 document.getElementById( "INPUT" ).value = ( parentData[0] ); 8 } 9 10 // 親ウインドウへデータを返す 11 function retPrefecture() { 12 window.returnValue = document.getElementById("INPUT").value; 13 window.close(); 14 } 15 16 function sendData(){ 17 var dealer_name = document.getElementById( "DEALER_NAME" ).value; 18 alert( dealer_name ); 19 searchPartnercode( dealer_name ).done( function(result){ 20 $( #DATA ).html( result ) 21 }).fail(function(result); { 22 $( #DATA ).html( "失敗" ) 23 }); 24 25 } 26 27 function searchPartnercode( dealer_name ){ 28 29 var senddata = "dealer_name=" + dealer_name; 30 31 return $.ajax({ 32 type: "POST", 33 url: "/cgi-bin/searchCode.cgi", 34 data: senddata 35 }); 36 37} 38 39</script> 40<body onload="setParams();"> 41<input type="text" id="INPUT" name="INPUT" > 42<input type="button" value="検索" name="SEARCH" id="SEARCH" onClick="sendData()"><br> 43 44<div id="ESPPDATA"></div> 45<input type="button" value="選択" onclick="retPrefecture();"> 46</body>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。