2016-02-26 127 views
0

我有一个带有表单的PHP页面,当它被提交时应该返回一个HighCharts图表和一个表格,数据被绘制。表单将$ _POST请求发送到另一个PHP文件,该文件检索变量,查询数据库并将数据作为数组返回,该数组作为多个系列添加到HighCharts脚本并输出到表中。加载HighCharts图表/表格上的数据使用jQuery提交

我希望图表和表格在表单提交之前不可见,但无论如何编码,我都无法更改2 DIV的可见性。当页面加载,这jQuery是触发:

$(function() { 
$('#tableData').hide(); 
$('#chart-container').hide(); 
$('#submit').click(function() { 
    $('#tableData, #chart-container').show(); 
    }); 

当提交表单时,所有的数据都回来了,我可以看到这一切在检查,但#tableData#chart-container的div都仍然显示display:none

我已经试过.show方法结合.on事件,.click事件和.submit事件,但没有工作。

读HighCharts API参考,它看起来像我需要创建一个单独的函数来请求数据,然后调用在load事件的功能,我只是无法弄清楚如何做到这一点。我没有使用AJAX来返回数据,这是他们在示例中显示的方法。

如何隐藏这些div并在点击提交按钮后显示它们?

+0

好像你每次提交页面或点击表单页面上的提交按钮,这些''#tableData,#chart-container''两个元素都显示出来,但只是第二次延迟,页面将继续重新加载,直到完成呈现。最后,你总是看到这两个元素处于隐藏状态的页面。这个过程一直重复着。除非你用ajax请求完成。 –

+0

@Norlihazmey所以你说唯一的方法来做我想要的是使用AJAX请求? – SpaceAge

+0

应该是这样的。否则,使用持久性存储,可以保存价值,甚至页面的刷新 –

回答

1

我觉得发生了什么事情,即每次提交页面时,.hide方法都会隐藏div,即使数据已返回。

我最终将2个div移动到一个有条件的PHP语句中,所以它们不存在,除非POST请求具有某些值。完全删除了jQuery,它正在工作,尽管我仍然好奇为什么它不是以前。