Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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 如何使用RaphaelJS将mySQL连接到SVG?_Php_Html_Mysql_Svg_Raphael - Fatal编程技术网

Php 如何使用RaphaelJS将mySQL连接到SVG?

Php 如何使用RaphaelJS将mySQL连接到SVG?,php,html,mysql,svg,raphael,Php,Html,Mysql,Svg,Raphael,我试图将MySQL数据库链接到SVG图像,以便使用Raphael JS动态更改SVG元素 我有一个MySQL数据库,在这里我使用PHP进行查询,并将结果以表格形式显示在html页面上:(下面的脚本工作,仅当满足时间戳的条件时才显示用户名和图片。) 答案将取决于更多的信息,而这些信息在编写其余信息之前是不可用的 您可以组合Snap(修改或创建现有的内联SVG)或Raphael(仅创建新的SVG,不能使用它修改内联SVG)或其他SVG库(例如SVG.js或jquery.SVG) 假设您已经在页面上使

我试图将MySQL数据库链接到SVG图像,以便使用Raphael JS动态更改SVG元素

我有一个MySQL数据库,在这里我使用PHP进行查询,并将结果以表格形式显示在html页面上:(下面的脚本工作,仅当满足时间戳的条件时才显示用户名和图片。)


答案将取决于更多的信息,而这些信息在编写其余信息之前是不可用的

您可以组合Snap(修改或创建现有的内联SVG)或Raphael(仅创建新的SVG,不能使用它修改内联SVG)或其他SVG库(例如SVG.js或jquery.SVG)

假设您已经在页面上使用了一些东西,即显示登录的用户,您可以执行类似于伪代码的操作

loop user; 
if( document.getElementById( userId ) ) Snap('#' + userId + '_image').attr({ fill: 'green' });
(svg参考可能与圆圈相同,但在某些地方,您需要某种类型的查找来知道哪个圆圈是哪个用户ID)

这假设svg在页面上。如果不是,您可以使用

paper.circle(x,y,r).attr({ fill: 'green' });

如果您希望它是动态的(因此状态会在不刷新的情况下更改),您可能需要绑定ajax调用以从mysql db获取状态,但是如果您已经在页面上显示了用户名,我假设这已经得到了处理。

我已经成功地将svg元素颜色更新为用户登录时的颜色,相应的圆将改变颜色。我从illustrator那里得到了svg代码。然后,我将此脚本放入我的php文件中:

window.onload = function () {

if(document.body.innerHTML.toString().indexOf('username') > -1){
         circle1_1.setAttribute("fill", "yellow");  
    };
    };
每当用户登录时,MYSQL查询中的html表中就会填充信息,脚本会查看该用户名是否在页面上,如果在页面上,则更改SVG元素的颜色

因此,它基本上将SVG元素链接到任何值/变量


不是最漂亮的代码或逻辑,但对于其他做类似事情的人来说,享受吧。

不清楚数据库、标记或只是属性数据或其他什么?为什么你需要Raphael,为什么不像用html一样输出标记呢?没错,我不需要Raphael。我基本上只想以图形格式输出查询,如SVG元素。我正在尝试,但我刚刚开始学习SVG,不知道如何将查询输出连接到SVG元素。与您使用html时所做的完全相同。只需像使用html和php时那样回显SVG标记和变量。对于html和php,我查询MySQL数据库并回显满足查询条件的内容。您是否建议我在MySQL DB中创建一个新列,并从PHP中添加SVG标记和echo?很抱歉,这是漫长的一天,感谢您迄今为止的帮助。Ian,我在输入svg代码(上面)以使用snap.svg(它不渲染)时遇到了一些问题。此外,我似乎无法使用if语句来更改作为html页面上的一个单词的测试而创建的单个svg元素的颜色。我会继续找出答案,但任何加快进度的建议都是非常受欢迎的。其中一些是伪代码……尝试显示一个圆圈,检查Chrome中的控制台日志或其他任何错误。然后,如果仍然卡住,尝试在JSFIDLE上获得一个非常小的案例,并发布一个新问题。
paper.circle(x,y,r).attr({ fill: 'green' });
window.onload = function () {

if(document.body.innerHTML.toString().indexOf('username') > -1){
         circle1_1.setAttribute("fill", "yellow");  
    };
    };