如何使用JQuery进行POST,检索结果,并使用结果来设置对象属性

时间:2012-04-27 15:55:36

标签: javascript jquery

我使用下面的脚本将可视化嵌入到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来检索“ticket”的值,然后获取响应。

从我已经完成的研究中,看起来jquery会允许我这样做,但由于我是一个js newb,我不清楚如何传递两个名称/值对(用户名,ipaddress)当我POST。我还不清楚如何通过解析响应并将其放入变量中以便稍后使用来获取生成的“票证”值。

问题1:有人可以告诉我该怎么做吗? (“保持简单的愚蠢”在这里顺序排列 - 假设我对jquery和javascript无能为力)

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

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

感谢您的想法!

1 个答案:

答案 0 :(得分:1)

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

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

var ticketValueFromServer;

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

在创建对象时使用此ticketValue。

不要忘记查看examples