0

我使用下面的脚本将可视化嵌入到 HTML 页面中。本质上,我在代表可视化的对象上设置属性,然后 viz_v1.js 为我完成所有繁重的工作:

  <script type="text/javascript" src="http://public.tableausoftware.com/javascripts/api/viz_v1.js"></script>
  <div class="tableauPlaceholder" 
        style="width:654px; height:1469px;background-image: url('http://localhost:81/Background.gif'); top: 0px; left: 0px; width: 100%; margin-left: 76px;">

            <noscript>
                <a href="#"><img alt="Analytics, Inc. " 
                src="http://localhost:81/Background.gif" 
                style="border: none" /></a>
            </noscript>

            <object class="tableauViz" width="654" height="1469" style="display:none;">
            <param name="host_url" value="http%3A%2F%2F192.168.56.1%2F" />
            <param name="site_root" value="/t/Site2" />
            <param name="name" value="AnalyticsIncJavaScript&#47;AnalyticsInc" />
            <param name="tabs" value="no" />
            <param name="toolbar" value="yes" />
            <param name="static_image" value="Background.gif"/>
            <param name="animate_transition" value="yes" />
            <param name="display_static_image" value="yes" />
            <param name="display_spinner" value="yes" />
            <param name="display_overlay" value="yes" />
            <param name="display_count" value="yes" />
            </object>

    </div>

请注意,我正在对所有有问题的属性值进行硬编码。

我现在需要在组合中添加另一个参数/属性 - 这个吸盘的值需要是动态的:

        <object class="tableauViz" width="654" height="1469" style="display:none;">
        <param name="host_url" value="http%3A%2F%2F192.168.56.1%2F" />
        ... 
        <param name="ticket" value="<a dynamic value>" />           
        </object>

我必须通过将任意用户名和客户端 IP 发布到 URL 来检索“票证”的值,然后获取响应。

从我所做的研究来看,jquery 似乎允许我这样做,但由于我是 js 新手,我不清楚如何在发布时传递两个名称/值对(用户名、ipaddress)。我也不清楚如何通过解析响应来获取生成的“票证”值并将其放入变量中以供以后使用。

问题1:有人可以告诉我如何做到这一点吗?(“为愚蠢而保持简单”在这里肯定是有序的——假设我对 jquery 和 javascript 一无所知是正确的)

问题 2:假设我现在已将票证值加载到变量中(我们称之为 varTicket),如何在我的 tableauViz 对象上动态填充票证参数?

我是否使用 PHP 之类的东西(对此也一无所知),并以某种方式回显我的门票价值?我可以直接寻址 tableauViz 对象并触摸它的 .ticket 属性吗?我宁愿处理这部分难题,而不必重新加载/提交包含页面。

谢谢你的想法!

4

1 回答 1

1

假设您的服务器将返回一个代表您的票证的 Json。

您的 jQuery 帖子看起来像这样:

var ticketValueFromServer;

jQuery.post(
  dataType : "JSON",
  data : {"username" : username, "ipaddress" : ipaddress},
  url: myserverlocation,
  success: function(response){
    ticketValueFromServer = response.ticket;
  }
);

在创建对象时使用此 ticketValue。

不要忘记看例子

于 2012-04-27T16:07:08.690 回答