如何使文本中的每个单词都可单击并将其发送到脚本

时间:2010-03-24 14:33:14

标签: php jquery mysql xml ajax

我有一个例如

的文字 “快速的棕色狐狸跳过懒狗。快速的棕色狐狸跳过懒狗。快速的棕色狐狸跳过懒狗。快速的棕色狐狸跳跃

在懒狗身上。“

当我点击单词时,我必须从XML或mysql获取有关该单词的数据。

如何让每个单词都处于活动状态以便点击并将其发送到另一个脚本

例如:我点击狗,在新窗口中我获得有关狗的信息?关于狐狸的狐狸?每个单词都必须是可点击的

任何想法,链接或示例?

使用php,mysql,jquery,ajax

2 个答案:

答案 0 :(得分:8)

将每个单词包裹在自己的范围内,可能使用CSS类将它们区分为“单词跨度”。为该类的所有跨度添加悬停处理程序,该处理程序提取内容并执行ajax请求以获取与该单词关联的数据。如果你得到一些数据,则弹出一个DIV(“提示”),其中包含与鼠标位置相关的信息,并且有一个z-index,允许它在其余内容上浮动。当鼠标未超出范围时,请删除相关的“提示”。

jQuery有各种各样的“tip”插件,你可以轻松地适应这个要求。

<span class="word">the</span> <span class="word">quick</span> ...

// use a ficticious tooltip plugin that uses gettip.php and passes
// the content of the DOM element as a parameter
$('span.word').tooltip({ url: '/gettip.php' });

注意:您可能只想对感兴趣的单词执行此操作,而不是对页面上的每个单词执行此操作。也就是说,有一个需要工具提示的单词字典,只包含字典中存在的页面上的单词。除了这是一个语法应用程序,用一切可能的单词来做这一点是没有意义的。

答案 1 :(得分:1)

一个问题太多了。我会回答标题中的一个。 假设您将“单词”定义为以空格分隔的字符组。 因此,您可以使用explode()函数并获取一组单词

现在你可以迭代它的数组并以任何你想要的方式打印出来:

$string = "The quick brown fox jumps over the lazy dog";
$array = explode(" ",$string);

foreach ($array as $word) {
  $eword=urlencode($word);
  echo "<a href=getinfo.php?word=$eword>$word</a> ";
}

所以,你将获得你的链接,现在你必须得到一本php / mysql初学者书来学习如何编写其余的