0

我有一个包含多个图像的表单。一旦用户单击任何图像,就会出现带有缩略图的弹出窗口。一旦他点击了任何一个缩略图,父窗口中的源图像就需要根据用户的选择进行替换(交换原始图像)。以下脚本仅适用于一个图像,因为logo1placeHolder1变量是硬编码的。如何将图像 id 从父窗口发送到弹出窗口,所以以下将是动态的?

编辑页面.editForm。logo1 .value = oName

编辑页面。placeHolder1 .src = "图像/用户/" + oName;

顺便说一句,主窗口中的图像名称和 ID 将根据表单模板进行更改。

模板.php

<script type="text/javascript">
function logoWin() {
window.open('logos.php','logos','height=500,width=700,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes');
}
</script>

<form action="" id="editForm" name="editForm" enctype="multipart/form-data">
<img src=”images/user/logo1.jpg” name="placeHolder1" id="placeHolder1" onclick='logoWin()'>
<img src=”images/user/logo2.jpg” name="placeHolder2" id="placeHolder2" onclick='logoWin()'>
<img src=”images/user/logo3.jpg” name="placeHolder3" id="placeHolder3" onclick='logoWin()'>

<input type="hidden" name="logo1" value="<?php echo $main_logo1; ?>" />
<input type="hidden" name="logo2" value="<?php echo $main_logo2; ?>" />
<input type="hidden" name="logo3" value="<?php echo $main_logo3; ?>" />

<input type="submit" value="Save" id="save">
</form>

标志.php

<script language="JavaScript">
    function getFile(oImg){
        editPage = eval(window.opener.document)
        oSrc = oImg.src;
        lastSlash = oSrc.lastIndexOf('/');
        oName = oSrc.substr(lastSlash+1);
        editPage.editForm.logo1.value = oName
        editPage. placeHolder1.src = " images/user/" + oName;
        this.close()
    }
    </script>   

[php loop]
<img src='images/user/".$row->img_file_name."' onclick='getFile(this)'>
<img src='images/user/".$row->img_file_name."' onclick='getFile(this)'>
<img src='images/user/".$row->img_file_name."' onclick='getFile(this)'>
4

1 回答 1

0

你为什么使用

eval(window.opener.document);

您可以使用

var editPage = window.opener.document;

您可以传递页面的 id,url如下所示

function logoWin(id) {
    window.open('logos.php?id='+id,'logos','height=500,...');
}

传递idas 函数参数,如下所示的 ( logoWin(1), logoWin(2))

<img src=”images/user/logo1.jpg” name="placeHolder1" id="placeHolder1" onclick='logoWin(1)'>
<img src=”images/user/logo2.jpg” name="placeHolder2" id="placeHolder2" onclick='logoWin(2)'>

在您的logos.php文件中,使用

$id = $_GET['id']; // it could be 1 or 2 or 3 and so on

然后,您可以将其用作JavaScript变量,例如

function getFile(oImg){
    var id = <?php echo $id; ?>;
    editPage = eval(window.opener.document);
    oSrc = oImg.src;
    lastSlash = oSrc.lastIndexOf('/');
    oName = oSrc.substr(lastSlash+1);
    var logo = 'logo'+id, placeHolder = 'placeHolder'+id;
    editPage.editForm[logo].value = oName;
    editPage[placeHolder].src = " images/user/" + oName;
    this.close();
}
于 2013-10-07T11:10:14.253 回答