Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
127
rated 0 times [  129] [ 2]  / answers: 1 / hits: 26845  / 15 Years ago, tue, september 29, 2009, 12:00:00

if i want to pass in my value for confirmation box!!! so lets say i want to delete item no 1 so i checked the check box then when i pressed the delete button. the popup box come out with detail item no 1 in it.



i have implemented the popup using show modal dialog (JavaScript) but i still cant get the parent value into the child form!



furthermore if i have item no 1 and item no 2 checked i want both to be displayed in the confirmation box!!



any suggestion would be greatly appreciated thx you!!!


More From » javascript

 Answers
7

The middle parameter for showModalDialog can be an object or an array or anything you like, and this passed object can be retrieved in the child form (say, in its OnLoad event) by referencing window.dialogArguments.



Hang on a second and I'll include a code sample (it's been about 10 years since I've done this).



Update: here is a very simple code sample that shows the basics of passing data back and forth between the parent and child windows using showModalDialog. Create two HTML files in the same folder, and name them Parent.htm and Child.htm. Put this code in Parent.htm:



<HTML>
<input type=button value=CustomConfirm
onclick=ShowMyDialog()>
<script language=javascript>
function ShowMyDialog()
{
var obj = new Object();
obj.data1 = 'some data 1';
obj.data2 = 'some data 2';
showModalDialog('Child.htm', obj, '');
alert(obj.returnvalue);
}
</script>
</HTML>


and put this code in Child.htm:



<HTML>
<body onload=ReadPassedData()
onunload=DoUnload()>
<input type=text id=textbox1>
<br>
<input type=text id=textbox2>
<br>
<br>
Return value:<br>
<input type=text id=textbox3
value=type something>
</body>
<script language=javascript>
function ReadPassedData()
{
var obj = window.dialogArguments;
var tb1 = document.getElementById('textbox1');
tb1.value = obj.data1;
var tb2 = document.getElementById('textbox2');
tb2.value = obj.data2;
}
function DoUnload()
{
var obj = window.dialogArguments;
obj.returnvalue = textbox3.value;
}
</script>
</HTML>


Then open Parent.htm in a browser and click the CustomConfirm button. The child window will display the values set in the parent window (some data 1 and some data 2), and when the child window is closed, whatever you've entered in the third text box will be displayed in an alert box called from the parent. This shows the basic way in which you pass data to the child and get data back from it.



There's also a way to return an object from the child window (which becomes the value returned from the showModalDialog call itself), but I don't recall how to do this.



Update 2: To pass an array instead, you would do something like this:



var myarray = new Array();
myarray[0] = Bob Smith;
myarray[1] = Doug Jones;
myarray[2] = Englebert Humperdinck;
var ret = showModalDialog('Child.htm', myarray, '');
alert(ret); // this will display whatever the child set for its
// window.returnValue


And then in the child window, you would get the array like before and use it to build your details display:



var myarray = window.dialogArguments;
alert(myarray[0]); // or whatever


Since you're now passing in an array instead of an object, you'll need to return true or false (instead of adding a returnvalue property to the passed object). You set the return value in the child by setting the window.returnValue property. Since you're creating a confirmation popup, you would presumably have a Yes and a Cancel button which would set window.returnValue to true or false, respectively.


[#98604] Thursday, September 24, 2009, 15 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jarod

Total Points: 62
Total Questions: 111
Total Answers: 83

Location: Saint Vincent and the Grenadines
Member since Sat, Sep 11, 2021
3 Years ago
jarod questions
;