Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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
Javascript 使用D3XHR调用Perl脚本_Javascript_Json_D3.js_Nvd3.js_Mod Perl - Fatal编程技术网

Javascript 使用D3XHR调用Perl脚本

Javascript 使用D3XHR调用Perl脚本,javascript,json,d3.js,nvd3.js,mod-perl,Javascript,Json,D3.js,Nvd3.js,Mod Perl,我有一个带有HTML表单的web应用程序。当我按下submit键时,我想将这个表单中的值提交到一个perl脚本parseDatabaseData_v2.pl,它从数据库中获取用户的数据,并创建该数据的JSON字符串 然后,我想使用D3图来可视化这个JSON数据。 以下代码使用jQueryAjax工作,并按预期从perl脚本返回JSON var runFromDate = $('#runDateSelectBox1').val(); var runToDate = $('#runD

我有一个带有HTML表单的web应用程序。当我按下submit键时,我想将这个表单中的值提交到一个perl脚本parseDatabaseData_v2.pl,它从数据库中获取用户的数据,并创建该数据的JSON字符串

然后,我想使用D3图来可视化这个JSON数据。 以下代码使用jQueryAjax工作,并按预期从perl脚本返回JSON

    var runFromDate = $('#runDateSelectBox1').val();
    var runToDate = $('#runDateSelectBox2').val();
    var barcode = $('#barcodesSelectBox').val();

    var dataString = 'runFromDate='+ runFromDate + '&runToDate=' + runToDate + '&barcode=' + barcode;

    // ajax command
    $.ajax({
        type: 'POST',
        url: './cgi-bin/parseDatabaseData_v2.pl',
        async: true,
        data: dataString,
        dataType: "json",
        success: function(data) {
              console.log("succesfully called script");

        }
    }); // end of ajax command
在perl脚本中,我使用
cgi->param('runFromDate')
以获取发布的参数

    var runFromDate = document.getElementById("runDateSelectBox1").value;
    var runToDate = document.getElementById("runDateSelectBox2").value;
    var barcode = document.getElementById("barcodesSelectBox").value;

    var dataString = 'runFromDate='+ runFromDate + '&runToDate=' + runToDate + '&barcode=' + barcode;

    d3.xhr("./cgi-bin/parseDatabaseData_v2.pl")
      .header("Content-Type", "application/x-www-form-url-encoded")
      .post(dataString,function(error, data){
          console.log("succesfully called script");
              console.log(data);
      });
但是,由于我正在使用NVD3的
lineWithFocusChart
可视化数据,因此我想使用d3.xhr调用脚本

当我创建下面的d3.xhr请求时,脚本不起作用(调用了get,但无法获取参数)

我尝试了各种格式化数据字符串的方法,包括将其格式化为JSON,如中所述

如果有人愿意帮助我,我将不胜感激

谢谢


Koen

您在url和编码之间有一个虚假的连字符

改变

.header("Content-Type", "application/x-www-form-url-encoded")


看起来你不是唯一一个这样的人。似乎有问题的代码已经出现在d3.js维基中,所以我也更新了它

你能加上
error
的值吗?(或者它是空的?)看看这个答案,我刚刚检查了它,它是空的。你比较了firebug的“Net”选项卡中jQuery和d3示例中发送的内容了吗?你能不能再举一个
dataString
字符串值的例子,这似乎可以解决这个问题。非常感谢你,克里斯托弗。
.header("Content-Type", "application/x-www-form-urlencoded")