使用php和javascript从弹出窗口返回一个值

时间:2013-07-27 11:17:02

标签: php javascript

我正在尝试从父页面创建一个弹出页面,该页面将返回一个值到父页面并最终关闭。

到目前为止我做了什么:

main.php:

<tr>
<th>Project Name</th>
<td><input type="text" name="project_name" id="pid" disabled="disabled" />
  <input type="button" name="choice" onClick="selectValue('id')" value="?"></td>
</tr>

<head>
<script type="text/javascript">
function selectValue(pid){
    // open popup window and pass field id
    window.open('search_project.php?id=' + encodeURIComponent(pid),'popuppage',
  'width=400,toolbar=1,resizable=1,scrollbars=yes,height=400,top=100,left=100');
}

function updateValue(pid, value){
    // this gets called from the popup window and updates the field with a new value
    document.getElementById(pid).value = value;
}

</script>
</head>

search_project.php:

<head>
<script>
function closeWin(){
    myWindow.close();
}
</script>

<script type="text/javascript">
function sendValue(value)
{
var parentId = <?php echo json_encode($_GET['id']); ?>;
window.opener.updateValue(parentId, value);
window.close();
}
</script>


<?php
$sql = mysql_query("SELECT project_id from prjct where project_id like 'default'");
$num = mysql_num_rows($sql);
<tr>
<td><input type="button" value="Select" onClick="sendValue('<?php echo $sql['project_id']; ?>')" /></td>
<td align="center"><? echo $sql['project_id']; ?></td>
</tr>

因此,应该关闭弹出窗口(search_project.php)并在main.php的输入字段中返回project_id的值。但是,当我点击选择按钮时,什么也没发生。弹出窗口不会关闭,也不会返回值。似乎sendValue(值)无效。

需要帮助。

1 个答案:

答案 0 :(得分:1)

你真的想在这里使用encodeURIComponent(pid)吗?

尝试不使用encodeURIComponent:

    window.open('search_project.php?id=pid','popuppage',
       'width=400,toolbar=1,resizable=1,scrollbars=yes,height=400,top=100,left=100');