php父级页面代码:function change()
{
    var address=window.showModalDialog("titleImgUpload.php",null,"dialogWidth=400px;dialogHeight=200px");
    document.getElementById('titleImg').innerHTML='<img src="../img/'+address+'" width="299" height="210"/>&nbsp;<a  href="javascript:change()">[更改图片]</a>';
}
<div id="titleImg">
<?
//$img是查询来的一个图片的路径,可能是为空的
if($img&&file_exists("../img/".$img))
{
    echo '<img src="../img/'.$img.'" width="299" height="210"/>'.chr(13);
}else{
    echo '无图片&nbsp;';
}
?>
&nbsp;<a href="javascript:change()">[更改图片]</a>
</div>
弹出页面titleImgUpload.php代码<?
if($_SERVER['REQUEST_METHOD']=='POST')
{
    $path='../img/';
    $name=$_FILES["tit"]["tmp_name"];
    if(move_uploaded_file($_FILES["tit"]["tmp_name"],$name)){
        echo '<script language="javascript">
     alert("上传成功!");
     window.returnValue="'.$name.'";
     window.close();
     </script>'.chr(13);
    }
}
?>
<html>
<head>
<script type="text/javascript" language="javascript">
function check()
{
    if(document.getElementById('tit').value=="")
    {
        alert("请选择要上传的图片");
        return false;
    }
    document.myform.submit();
}</script>
</head>
<body>
<form id="myform" enctype="multipart/form-data" name="myform" method="post" action="">
<br>&nbsp;
<input name="tit" type="file" id="tit"/>
<a href="javascript:check()"/>[上传]</a>
</form>
</body>
</html>好..问题来了
上传时没问题的..但是我想要的效果是让上传结束后..弹出页面自动关闭..并且把图片名称作为窗体返回参数..并显示在父级页面上...可是这样写的效果就是...上传的弹出窗口提交了以后...提交的会是一个新窗口...在弹出"上传成功"后..新窗口是关闭了..可弹出窗口还在的...请教该怎么改才能实现我要的效果...谢谢!!!

解决方案 »

  1.   

    抱歉..父级页面重新贴<html>
    <head>
    <script type="text/javascript" language="javascript">
    function change()
    {
        var address=window.showModalDialog("titleImgUpload.php",null,"dialogWidth=400px;dialogHeight=200px");
        document.getElementById('titleImg').innerHTML='<img src="../img/'+address+'" width="299" height="210"/>&nbsp;<a  href="javascript:change()">[更改图片]</a>';
    }
    </script>
    </head>
    <body>
    <div id="titleImg">
    <?
    //$img是查询来的一个图片的路径,可能是为空的
    if($img&&file_exists("../img/".$img))
    {
        echo '<img src="../img/'.$img.'" width="299" height="210"/>'.chr(13);
    }else{
        echo '无图片&nbsp;';
    }
    ?>
    &nbsp;<a href="javascript:change()">[更改图片]</a>
    </div>
    </body>
    </html>
      

  2.   

    titleImgUpload.php在窗口中提交给自身即可,即action为空或target ="_self";这样上传处理后输出类似:
    <script type="text/javascript">
    parent.document.getElementById("input_5").value = 'U1716P27T173D1F4430DT20110104100132.jpg'; //将窗口的表单填值
    //parent.fb.end();//调用主窗口中弹出窗口句柄关闭,也可以本身关闭
    </script>
      

  3.   

    本帖最后由 xuzuning 于 2011-01-10 16:19:37 编辑
      

  4.   


    首先你只在弹出窗口提交,提交处理只返回js代码。
    你提交给自身的,不会在窗口打开,而且因为你可以控制js代码,所以可以不让它弹出其他窗口;
    仔细查你窗口中的代码实在不行贴出来。在窗口上点右键-源码
      

  5.   

    窗口提交
    function check()
    {
        if(document.getElementById('tit').value=="")
        {
            alert("请选择要上传的图片");
            return false;
        }
        document.myform.submit();
    }也是这句啊...难倒是这里有问题?