Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 添加不带跨距标记或标题的工具提示/气泡显示_Php_Javascript_Mysql_Tooltip - Fatal编程技术网

Php 添加不带跨距标记或标题的工具提示/气泡显示

Php 添加不带跨距标记或标题的工具提示/气泡显示,php,javascript,mysql,tooltip,Php,Javascript,Mysql,Tooltip,当用户将鼠标悬停在某些文本/关键字上时,如何显示工具提示?该文本体直接从数据库中检索,因此我无法向这些关键字添加任何span或div标记或标题信息。是否有一种方法可以自动为页面中包含的某些单词创建工具提示 请告诉我是否有关于如何解决此问题的好教程。//创建工具提示字典 // Create tooltips dictionary $tooltips = Array("Word1"=>"This word is word number 1", "Word2

当用户将鼠标悬停在某些文本/关键字上时,如何显示工具提示?该文本体直接从数据库中检索,因此我无法向这些关键字添加任何span或div标记或标题信息。是否有一种方法可以自动为页面中包含的某些单词创建工具提示

请告诉我是否有关于如何解决此问题的好教程。

//创建工具提示字典
// Create tooltips dictionary
$tooltips = Array("Word1"=>"This word is word number 1", 
                  "Word2"=>"This word is word number 2");

$content = "Here are Word1 and Word2";
foreach ($tooltips as $word=>$tip){
    $content = preg_replace("/(".$word.")/", "<span title='".$tip."'>$1</span>", $content);
}
echo $content;
$tooltips=Array(“单词1”=>“这个单词是单词编号1”, “单词2”=>“这个单词是单词编号2”); $content=“这里是Word1和Word2”; foreach($word=>$tip形式的工具提示){ $content=preg_replace(“/(“$word”)/”、“$1”、$content); } echo$内容;
//创建工具提示字典
$tooltips=Array(“单词1”=>“这个单词是单词编号1”,
“单词2”=>“这个单词是单词编号2”);
$content=“这里是Word1和Word2”;
foreach($word=>$tip形式的工具提示){
$content=preg_replace(“/(“$word”)/”、“$1”、$content);
}
echo$内容;

实际上,您可以使用span或其他任何工具

您有两个选项,第一个选项是在“display:none”div或span中的第一个页面请求中加载工具提示内容,然后用onmouseover事件显示它

第二个选项是执行ajax请求


你应该看看这个:

实际上你可以利用span或其他什么

您有两个选项,第一个选项是在“display:none”div或span中的第一个页面请求中加载工具提示内容,然后用onmouseover事件显示它

第二个选项是执行ajax请求


你应该看看这个:

我刚才不得不这么做。事实上,我在这里回答了一个类似的问题:(我花了一段时间寻找它)

下面是我用来做动态工具提示的东西:

// keyword : tooltip
keywords = {
    'hello world' : 'a common first example program',
    'goodbye cruel world' : 'the opposite of hello world'
};
function insertTooltips (domNode) {
    if (domNode.nodeType === Node.ELEMENT_NODE) { // We only want to scan html elements
        var children = domNode.childNodes;
        for (var i=0;i<children.length;i++) {
            var child = children[i];

            // Filter out unwanted nodes to speed up processing.
            // For example, you can ignore 'SCRIPT' nodes etc.
            if (
                child.nodeName  != 'span' ||
                child.className != 'tooltip_span'
            ) {
                insertTooltips(child); // Recurse!
            }
        }
    }
    else if (domNode.nodeType === Node.TEXT_NODE) { // Process text nodes
        var text = domNode.nodeValue;

        // This is another place where it might be prudent to add filters

        for (var i in keywords) {
          if (keywords.hasOwnProperty(i)) {
            var match = text.indexOf(i); // you may use search instead
            if (match != -1) {
                // This is how you wrap the keyword in a span:

                // create a span:
                var span = document.createElement('SPAN');

                // split text into 3 parts: before, mid and after
                var mid = domNode.splitText(match);
                mid.splitText(i.length);

                // then assign mid part to span
                mid.parentNode.insertBefore(span,mid);
                mid.parentNode.removeChild(mid);
                span.appendChild(mid);

                // now we can assign a mouseover event handler to the span
                span.onmouseover = function(){
                    showToolTip(keywords[i]);
                }

                // give the span a class name to prevent accidental
                // recursion into it:
                span.className = 'tooltip_span';
            }
          }
        }
    }
}
//关键字:工具提示
关键词={
“hello world”:“常见的第一个示例程序”,
《再见残酷的世界》:《你好世界的反面》
};
函数插入工具提示(domNode){
如果(domNode.nodeType==Node.ELEMENT\u Node){//我们只想扫描html元素
var children=domNode.childNodes;

对于(var i=0;i我刚才不得不这么做。实际上,我在这里回答了一个类似的问题:(我花了一段时间搜索它)

下面是我用来做动态工具提示的东西:

// keyword : tooltip
keywords = {
    'hello world' : 'a common first example program',
    'goodbye cruel world' : 'the opposite of hello world'
};
function insertTooltips (domNode) {
    if (domNode.nodeType === Node.ELEMENT_NODE) { // We only want to scan html elements
        var children = domNode.childNodes;
        for (var i=0;i<children.length;i++) {
            var child = children[i];

            // Filter out unwanted nodes to speed up processing.
            // For example, you can ignore 'SCRIPT' nodes etc.
            if (
                child.nodeName  != 'span' ||
                child.className != 'tooltip_span'
            ) {
                insertTooltips(child); // Recurse!
            }
        }
    }
    else if (domNode.nodeType === Node.TEXT_NODE) { // Process text nodes
        var text = domNode.nodeValue;

        // This is another place where it might be prudent to add filters

        for (var i in keywords) {
          if (keywords.hasOwnProperty(i)) {
            var match = text.indexOf(i); // you may use search instead
            if (match != -1) {
                // This is how you wrap the keyword in a span:

                // create a span:
                var span = document.createElement('SPAN');

                // split text into 3 parts: before, mid and after
                var mid = domNode.splitText(match);
                mid.splitText(i.length);

                // then assign mid part to span
                mid.parentNode.insertBefore(span,mid);
                mid.parentNode.removeChild(mid);
                span.appendChild(mid);

                // now we can assign a mouseover event handler to the span
                span.onmouseover = function(){
                    showToolTip(keywords[i]);
                }

                // give the span a class name to prevent accidental
                // recursion into it:
                span.className = 'tooltip_span';
            }
          }
        }
    }
}
//关键字:工具提示
关键词={
“hello world”:“常见的第一个示例程序”,
《再见残酷的世界》:《你好世界的反面》
};
函数插入工具提示(domNode){
如果(domNode.nodeType==Node.ELEMENT\u Node){//我们只想扫描html元素
var children=domNode.childNodes;

对于(var i=0;i即使文本是从数据库读取的,在回显它之前仍应能够将关键字包装在一个范围内。即使文本是从数据库读取的,在回显它之前仍应能够将关键字包装在一个范围内。请注意,“Word1”和“Word2”是不能包含“/”的正则表达式谢谢你的帮助。这个解决方案适合我。这也是我找到的最有效的解决方案。请注意,“Word1”和“Word2”是不能包含“/”的正则表达式。谢谢你的帮助。这个解决方案适合我。这也是我找到的最有效的解决方案。