当用户在我的网站(PHP)上选择文本中的单词,然后右键单击时,我想要一个jQuery上下文菜单,这可以通过使用一个已经存在的jQuery上下文菜单插件来完成。
但除了复制/粘贴/剪切等选项之外,我还希望使用PHP 选择的单词来完成。我认为,这有点困难。 例如,使用此脚本:
$selection = //the selected word or text
$target = //fetch from MYSQL database
$output = array();
while ($row = //fetch $target) {
If ($selection == $row->input) { array_push($output,$row->output); }
}
echo '//menu '.print_r($output).''; // of course not print_r! Just for the example's sake.
数据库示例: (抱歉超大图片)
好的,所以在示例文本中选择“lazy”这个词,然后右键单击,弹出的jQuery框会显示PHP提取的数据库的结果。
实施例:
好的,所以我知道你不能只是将javascript与PHP结合起来而且它只能被解析,但我想用菜单加载iframe,数据库提取会通过使用javascript设置iframe来完成工作src包含网址中的选定单词。
然而,iFrames并不是解决此问题的好方法。
问题:我怎样才能有效地做到这一点?右键单击执行此脚本并在菜单中显示与数据库相关的内容?
答案 0 :(得分:2)
我需要知道您使用的插件,以便为您提供一些代码示例,但是,一般情况下,我会这样做:
答案 1 :(得分:1)
AJAX是一种很好的方式来做你想做的事。
这是simple AJAX example。请注意,在第二个.PHP文件中,您可以在其中放置数据库查找等。
无论你从第二个脚本回复什么,都是通过调用javascript(第一个脚本再次)收到的,并且可以即时插入到你的上下文菜单中。以下是another example,其中详细解释了答案底部的流程。
答案 2 :(得分:0)
我认为您必须使用Ajax从PHP文件中获取JSON,您将在实际页面上处理该文件。
我创建了一个名为test.php
的PHP文件,其中包含以下内容:
<?php
echo json_encode(array('time' => time(), 'hour', date('H')));
?>
然后是Javascript:
<script>
$('#curr_menu_entry').click(function() {
$.getJSON('test.php', function(data) {
$.each(data, function(key, val) {
$('#curr_menu_entry').append('<li id="' + key + '">' + val + '</li>');
});
});
});
</script>
那会有用吗?