首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP文件中更新SVG中的文本

在PHP文件中更新SVG中的文本
EN

Stack Overflow用户
提问于 2021-01-27 17:38:18
回答 1查看 144关注 0票数 1

我有一个PHP文件,其中包含一个SVG部件。在SVG部分中,我想显示一个PHP变量,它每3秒更新一次。我尝试过使用jquery,但这只是清除了空间。这是我使用的jquery代码的代码。SVG部分必须刷新:

代码语言:javascript
运行
复制
<script src="jquery.js"></script>
<script> 
    $(document).ready(function(){
        setInterval(function updateDiv(){ 
            $( "#LA" ).load(window.location.href + "#LA")
        }, 3000);
    })
</script>

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">  
    <text id="LA" fill="#a3a3a3" font-size="35" font-family="FranklinGothic-Heavy, Franklin Gothic" font-weight="800">
        <tspan x="7.902" y="32">
        <?php echo $A_array[0][0]?>
        </tspan>
    </text>
</svg

我还试图通过搜索“刷新PHP数据”来寻找其他解决方案,但答案大多是基于更新MySQL数据的。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-06 09:55:07

代码中有两个错误:

重新加载时,-you在#LA之前缺少一个空格

-you必须定义一个更深层次的id="LA“:在tspan内部。

代码语言:javascript
运行
复制
<!doctype html>
<html lang="en">
   <head>
      <meta charset="utf-8">
      <title>Auto reload SVG</title>
      <meta name="description" content="Auto reload SVG">
      <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
      <script> 
         $(document).ready(function(){
                         setInterval(function updateDiv(){ 
                                         $( "#test" ).load(window.location.href + " #test")
                                         $( "#LA" ).load(window.location.href + " #LA")
                         }, 2000);
         })
      </script>
   </head>
   <body>
      <h1>
         <span id="test">
         <?php echo rand(10,100); ?>
         </span>
      </h1>
      <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
         <text fill="#a3a3a3" font-size="35" font-family="FranklinGothic-Heavy, Franklin Gothic" font-weight="800">
            <tspan x="7.902" y="32" id="LA">
               <?php echo rand(100,1000); ?>
            </tspan>
         </text>
      </svg>
   </body>
</html>

上述解决方案的一个问题是,由于要显示更高的频率和更多的数据号,它不能很好地扩展,因为load()方法加载了包含所有脚本的完整页面。然后过滤出所提供的#id内容。

最好是将数据从页面本身中分离出来,并使用jQuery get()方法调用这个数据端点。

您可以看到它从84 it降到了0.26KB (不包括每次调用的FaviconLoader.jsm )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65924422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档