I have a child window, with a select box. When a selection is made in the select box, javascript updates the opener form textbox with the value selected. However, it is coming encoded. If i do not encode the values with php, then the variable doesnt get posted correctly.
below is code.
child page code.
<html>
<head>
<script langauge="javascript">
function post_value(){
opener.document.myform.values.value = document.frm.c_name.value;
self.close();
}
</script>
</head>
<body><form name="frm" method=post action=''>
<?
include('includes/db.php');
$name = $_GET['row'];
$query = $name;
$q = "SELECT * FROM ".DB_TABLE_SELECTION." WHERE row_name = '$name'";
$result = $database->query($q);
$num1 = mssql_num_rows($result);
for($i = 0; $i < $num1; $i++){
$row = mssql_fetch_array($result);
$array[$i] = $row['row_option'];
}
echo "<br><b>".$query."</b><br><select name=c_name onclick=\"post_value();\" value=".$query." class=formfield size=6 style=\"width: 50mm;\" >";
sort($array);
$blah = count($array);
for($k = 0; $k < $blah; $k++){
echo "<option value=".rawurlencode(trim($array[$k])).">".$array[$k]."</option>";
}
echo "</select><br><br>";
?>
</form>
</body>
</html>
parent code.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<SCRIPT LANGUAGE="JavaScript">
function testResults (form) {
var TestVar = form.mylist.value;
window.open('select_options.php?row=' + TestVar);
decodeURI(document.myform.values.value);
}
function enableField()
{
document.myform.wild.disabled=false;
}
</script>
</head>
<body>
<table bgcolor="#d0cece" cellspacing="3">
<tr>
<td valign=top>
<?
include('includes/db.php');
echo "<form name=myform>";
echo "<b><font size=2 face=arial>Field: </b>";
$q = "SELECT row_name FROM ".DB_TABLE_ROWNAMES;
$result = $database->query($q);
$num = mssql_num_rows($result);
for($i = 0; $i < $num; $i++){
$row = mssql_fetch_array($result);
$array[$i] = $row['row_name'];
}
echo "<select name=mylist class=formfield>";
sort($array);
$arr = array_unique($array);
foreach($arr as $line){
echo "<option value=".$line.">".$line; }
echo "</select>";
?></td><td>
<input type="radio" name="wild" value="wildcard" ><font size=2 face=arial><b>wildcard</b>
<input type="text" name="wildcard"><br>
<input type="radio" name="wild" value="value" onClick=testResults(this.form)><font size=2 face=arial><b>value </b>
<?
$form = "<INPUT TYPE=\"text\" NAME=\"values\" value=\"\" >";
echo rawurldecode($form);
?>
</td>
</tr>
</table>
<input type="button" value="submit" onClick="window.open('test.php?row=' + this.form.values.value);">
</FORM>
</BODY>
</HTML>
below is code.
child page code.
<html>
<head>
<script langauge="javascript">
function post_value(){
opener.document.myform.values.value = document.frm.c_name.value;
self.close();
}
</script>
</head>
<body><form name="frm" method=post action=''>
<?
include('includes/db.php');
$name = $_GET['row'];
$query = $name;
$q = "SELECT * FROM ".DB_TABLE_SELECTION." WHERE row_name = '$name'";
$result = $database->query($q);
$num1 = mssql_num_rows($result);
for($i = 0; $i < $num1; $i++){
$row = mssql_fetch_array($result);
$array[$i] = $row['row_option'];
}
echo "<br><b>".$query."</b><br><select name=c_name onclick=\"post_value();\" value=".$query." class=formfield size=6 style=\"width: 50mm;\" >";
sort($array);
$blah = count($array);
for($k = 0; $k < $blah; $k++){
echo "<option value=".rawurlencode(trim($array[$k])).">".$array[$k]."</option>";
}
echo "</select><br><br>";
?>
</form>
</body>
</html>
parent code.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<SCRIPT LANGUAGE="JavaScript">
function testResults (form) {
var TestVar = form.mylist.value;
window.open('select_options.php?row=' + TestVar);
decodeURI(document.myform.values.value);
}
function enableField()
{
document.myform.wild.disabled=false;
}
</script>
</head>
<body>
<table bgcolor="#d0cece" cellspacing="3">
<tr>
<td valign=top>
<?
include('includes/db.php');
echo "<form name=myform>";
echo "<b><font size=2 face=arial>Field: </b>";
$q = "SELECT row_name FROM ".DB_TABLE_ROWNAMES;
$result = $database->query($q);
$num = mssql_num_rows($result);
for($i = 0; $i < $num; $i++){
$row = mssql_fetch_array($result);
$array[$i] = $row['row_name'];
}
echo "<select name=mylist class=formfield>";
sort($array);
$arr = array_unique($array);
foreach($arr as $line){
echo "<option value=".$line.">".$line; }
echo "</select>";
?></td><td>
<input type="radio" name="wild" value="wildcard" ><font size=2 face=arial><b>wildcard</b>
<input type="text" name="wildcard"><br>
<input type="radio" name="wild" value="value" onClick=testResults(this.form)><font size=2 face=arial><b>value </b>
<?
$form = "<INPUT TYPE=\"text\" NAME=\"values\" value=\"\" >";
echo rawurldecode($form);
?>
</td>
</tr>
</table>
<input type="button" value="submit" onClick="window.open('test.php?row=' + this.form.values.value);">
</FORM>
</BODY>
</HTML>