我有一个显示pdf下拉列表的插件。 (它在网站的不同页面上显示文件的不同列表。)
我需要克隆该插件,该插件始终包含在其页面的底部,以便相同的下拉列表也显示在其所在页面的顶部。可以和jquery一起使用。
问题是,尽管(克隆的)顶部下拉菜单工作正常,但是当您单击底部的“上载”按钮时,它会尝试使用顶部的选定选项。因此,无论您在底部下拉菜单中选择了哪个选项,底部上传按钮都会使用在顶部下拉菜单中选择的任何选项。
我有插件代码(如下所示),并希望添加一些代码来查找父div的唯一ID,并使用正确的下拉上下文/焦点。
尝试了很多代码,但并不真正了解php,因此请继续使用它。 我的第一个目标是在代码中找到正确的位置以更正焦点。所以我目前正在尝试使调试工作正常.....
PHP:
while ($rs = mysql_fetch_array($qry))
{
echo "<option value='{$rs[url]}|{$rs[target]}'>$rs[link_name]</option>";
echo "<script type='text/javascript'>console.log('{$rs[url]}|{$rs[target]}');</script>";
}
echo "</select> <input type='button' class='EZJumpMenuButton' value=' Go ' onclick=\"javascript:goUrl('$val');\">";
echo "</div>";
?>
Javascript:
<script>
if(typeof goUrl != 'function') {
function goUrl(id)
{
$(".EZJumpMenu").click(function() {
console.log("this div (2) = " + $(this).parent().attr('id'));
});
var str1= document.getElementById('link_url'+id+'').value;
console.log("str1 = " + str1);
if(str1 != '')
{
var str = str1.split("|");
console.log("str = " + str + "AKS");
if(str[1]=='_top') location.href= str[0];
else if(str[1]=='_blank') {
mywin= window.open (str[0],"mywindow");
}
else if(str[1]=='_self') {
// alert("link to : "+str[0]);
self.location.href = str[0];
}
else if(str[1]=='_parent') {
parent.location.href = str[0];
}
else if(str[1]=='frameset') {
var linkto="http://<?=$_SESSION['docroot_url']?>/sohoadmin/plugins/JumpMenu/frameset.php?goto="+str[0];
mywin1= window.open (linkto,"myframe");
}
}
}
}
</script>
循环中的第二个'echo'行是我的-试图显示php中此时发生的事情;它在下拉列表中显示了预期的pdf选项(例如http://xxx.co.nz/media/yyyy.pdf|_blank)。
函数 goUrl(id)似乎是实际显示所选pdf的内容。 注意:在测试顶部菜单时,var str包含正确的文件,但是在测试底部菜单时为空白。因此,我假设必须在调用goUrl之前设置上下文。
第一个jquery位是我的-它正确显示单击了哪个唯一div(botJumpMenu或topJumpMenu)。请注意,从克隆开始,有一些通用的类)
如何在php echo行中包含以下内容? (我认为这是我可能能够以某种方式设置正确的div的位置):
$(this).parent().attr('id')
我尝试过:
console.log('{$rs[url]}|{$rs[target]}|$(this).parent().attr('id')');
但是它给出了一个错误。