小编Tim*_*Tim的帖子

从CSV数据创建D3.js可折叠树

对于那些对d3更熟悉的人来说,这可能是一个稍微愚蠢的问题,但我对它很新,我无法弄清楚如何让这个东西起作用:

我想要实现的是:http://bl.ocks.org/robschmuecker/7880033

但我想从平面CSV而不是JSON中提取数据.

问题是我的CSV格式如下:

Parent Name | Child Name
-------------------------
Parent Name | Child Name
-------------------------
Parent Name | Child Name

so on...
Run Code Online (Sandbox Code Playgroud)

有人可以指点我正确的方向吗?我知道d3.csv函数以某种方式工作,但我不知道如何将它"插入"上面的例子中.

我道歉,我知道这听起来像是"为我做功课",但我老老实实地给了它一个好的去,我想我被卡住了.

谢谢.赞赏.

javascript csv d3.js

7
推荐指数
1
解决办法
8681
查看次数

MySQL:插入或更新(如果存在,但不基于键列)

我有一个完整的培训表。每个用户都有一个用户名。每个用户可以完成许多课程。

该表具有以下标题:

+-------------------------+----------+---------+---------+---------+---------+-----------+
| recordnumber (KEY - AI) | username |  type   | course  | status  | started | completed |
+-------------------------+----------+---------+---------+---------+---------+-----------+
| int                     | varchar  | varchar | varchar | varchar | date    | date      |
+-------------------------+----------+---------+---------+---------+---------+-----------+
Run Code Online (Sandbox Code Playgroud)

我有一个 PHP 脚本设置为从 CSV 上传填充数据库。

我想要实现的是添加新行并更新现有行。

问题是记录号(它们的键,唯一字段)不是恒定的。因此,我不想执行“ON DUPLICATE KEY”查询,而是根据用户名和课程是否已作为一行存在来执行此操作。

基本上是说“如果这个用户名已经有这门课,更新其他字段。如果用户名没有这门课,把它添加为新行”。

我目前的查询(基于密钥工作)是:

INSERT into table(recordnumber, username,type,course,status,started,completed) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]')

ON DUPLICATE KEY UPDATE username='$data[1]',type='$data[2]',course='$data[3]',status='$data[4]',started='$data[5]',completed='$data[6]'
Run Code Online (Sandbox Code Playgroud)

关于如何修改查询以使其根据用户名和课程而不是重复键进行检查的任何想法?

谢谢你。:-)

mysql sql

6
推荐指数
2
解决办法
9533
查看次数

JS不在第一次加载时工作 - 刷新后工作

我在JS中做了一件相当简单的事情:我正在测试一个元素(基于类名)是否包含一个字符串.

我认为它不起作用的原因是因为元素是通过与onload事件分开的HTTPS请求在页面上呈现的.(类似于嵌入式/ iFrame类型的东西).

我有的脚本示例:

(function($) {

//Only run on a specific page.
if(window.location.href.indexOf("SpecificPageImRunningOn") > -1) {

    //Wait for 3 seconds before running this script, to allow content to load
    setTimeout(function(){

        //Check if a class contains a string "Foobar"
        if($('.aSpecificClass').text().indexOf('Foobar') != -1){
            alert("Yes!");
        }
        else{
            alert("No!");
        }

    }, 3000);

}

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

当我第一次测试它(新浏览器清除缓存)时,它不能按预期工作.

一旦我刷新,它就能很好地工作.

我已经尝试手动触发该功能(通过在所有内容加载后单击按钮)并且它仍然没有任何不同的行为.它在第一次加载时根本不起作用.

我也试过通过设置一个cookie来做一次强制刷新,这似乎没有任何区别.

我想我错过了一些明显的东西!

测试

javascript jquery

5
推荐指数
2
解决办法
3888
查看次数

标签 统计

javascript ×2

csv ×1

d3.js ×1

jquery ×1

mysql ×1

sql ×1