在WordPress中将onChange事件添加到自定义下拉菜单

时间:2014-07-30 作者:L. Becker

我想在通过Wordpress插件创建的下拉菜单中添加onchange事件。由于这是我第一次涉足Wordpress开发,而且我所在的公司对他们的要求很高,我很难理解如何做到这一点。

这就是我所拥有的:我有一个插件,它通过一个短代码将一个基本URL嵌入Wordpress站点。该插件有一个管理设置页面,允许用户更改基本URL。在插件的php文件中,我有一个返回下拉菜单并嵌入基本URL的函数:

function embed_url() {
$dropdown_menu = \'<select><option>OptionDefault</option><option value="?id=1">Option1<option value="?id=2">Option2</option></select>\';
$full_url = \'<object type="text/html" data=\' . $embed_this_url . \' style="width:100%; height:100%"><p> URL could not be loaded. </p> </object>\';
return $dropdown_menu . $full_url;
}
变量$embed\\u this\\u url是保存在WP数据库中的选项的值。例如,该值可以是“http://www.mysite.com“。

我想要的:我想要我的下拉菜单来更改嵌入的网站。使用上面的代码,如果用户选择选项1,嵌入的站点将是$embed\\u this\\u url+\'?id=1’(换句话说:http://www.mysite.com?id=1). 因此,我需要添加一些javascript来执行onchange函数,以使用$embed\\u this\\u url加上所选url的值刷新。

我将如何实现这一点?

1 个回复
最合适的回答,由SO网友:Domain 整理而成

我在html输出中添加了一个包装器,然后编写了一个可以使用的jQuery代码-

function embed_url() {
$dropdown_menu = \'<select><option>OptionDefault</option><option value="?id=1">Option1<option value="?id=2">Option2</option></select>\';
$full_url = \'<object type="text/html" data=\' . $embed_this_url . \' style="width:100%; height:100%"><p> URL could not be loaded. </p> </object>\';

return \'<div class="site-url">\' . $dropdown_menu . $full_url . \'</div>\';

}
jQuery代码-

jQuery(document).ready(function($){
$(\'.site-url select\').on(\'change\', function(){
var param = $(this).val();
var url = $(\'.site-url object\').attr(\'data\');
url += param;
$(\'.site-url object\').attr(\'data\', url);
}); 
});

结束