iframe の非表示の入力フィールド情報を設定または取得するのに問題があります。
最初のページで、[送信] ボタンをクリックして showBox 関数を有効にし、name、city、state の 3 つのパラメーターを正常に渡します。showBox は、iframe がボックスの上に置かれ、フォーム操作を行うポップアップ ボックスを作成します。showBox 関数から渡された値を使用して、3 つの非表示の入力フィールドの値を設定する必要があります。ショーボックス機能のコードは次のとおりです-
function showBox(name, city, state)
{
var div = document.createElement('div');
div.style.zIndex = 1;
div.id = 'box';
div.style.position = (navigator.userAgent.indexOf('MSIE 6') > -1) ? 'absolute' : 'fixed';
div.style.top = '20px';
div.style.left = (width / 2) - (900 / 2) + 'px';
div.style.height = '500px';
div.style.width = '400px';
div.style.backgroundColor = 'white';
div.style.border = '2px solid silver';
div.style.padding = '20px';
document.body.appendChild(div);
alert("Name: " + name + ", City: " + city + ", State: " + state);
div.innerHTML = "<iframe id='infopage' src='" + 'info.html' + "' width='100%' height='95%'></iframe>";
// set value of the hidden input fields
var myname = $("#infopage #hiddenname").val(name);
var mycity = $("#infopage #hiddencity").val(city);
var mystate = $("#infopage #hiddenstate").val(state);
// check hidden input fields value - which come back blank so far
alert("Name from hidden field: " + $("#hiddenname").val() + ", City from hidden field: " + $("#hiddencity").val() + ", State from hidden field: " + $("#hiddenstate").val());
// create close window link
var a = document.createElement('a');
a.innerHTML = '<br /><br />Close window';
a.href = 'javascript:void(0)';
a.onclick = function()
{
document.body.removeChild(document.getElementById('box'));
};
div.appendChild(a);
}
パラメータ値が showBox 関数に正常に渡されたとしても、パラメータを使用して非表示の入力フィールドの値を正常に設定できませんでした。
一方、これは info.html のコードです -
<!DOCTYPE html>
<html>
<head>
<title>Sample person information</title>
<style type="text/css" title="currentStyle">
@import "css/core.css";
</style>
<script type="text/javascript" language="javascript" src="js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="js/jsonreport.js"></script>
<script type="text/javascript" src="js/info.js"></script>
</head>
<body>
<div id="container">
<div class="full_width big" id="testname">
<br />
<!-- (it may take a while to load large files) -->
</div>
<br />
<input type="text" name="hiddenname" id="hiddenname" value="" />
<input type="hidden" name="hiddencity" id="hiddencity" value="" />
<input type="hidden" name="hiddenstate" id="hiddenstate" value=""/>
<input id="submit" type="button" value=" Enter " />
<div id="AjaxDiv"></div>
</div>
</body>
</html>
[Enter] ボタンをクリックすると、iframe の非表示フィールドの値を使用して ajax 関数が呼び出されます。どういうわけか、iframe から非表示の入力フィールドの値を取得することも困難です。