首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过AJAX提交表单后显示图表

通过AJAX提交表单后显示图表
EN

Stack Overflow用户
提问于 2013-06-17 19:48:38
回答 1查看 324关注 0票数 0

我需要显示一个报告,其中包含来自服务器的一些数据,其中还包括一个图表。一旦表单已经提交,im正在尝试使用$.getJSON发送json数据,但是由于某些原因,im甚至无法回显$_GETrep以确保im接收到正确的数据。下面是php代码,下面是js http://jsfiddle.net/f8rGb/2/

PHP代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  if (isset($_POST["search"]) and $_POST["search"] == "go"){

     $name = $_POST['term'];

     $project = new Project();
     $pro = $project->get_project($name);  
     $serv = $project->get_project_service_by_id($pro);

     // DOING this to make sure i recieve the variable 
        // echo $_GET['rep'];

        if(isset($_GET['rep']))
        die(json_encode($serv)); 

     }

JS代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   function searchProjectsRep() {

   // TRIGGERING THIS FUNCTION IN THE ONSUBMIT EVENT OF THE FORM

   var datos = $('#formProjectsRepSearch').serialize();
   var uri = $('#formProjectsRepSearch').attr('action');
    $.ajax({
        url: uri,
        data: datos,
        type: 'POST',
        success: function(resp) {
            $('#ajaxProjectsRep').html(resp);
            projectChart();
        }
 });
 }

 // CHART FUNCTION

 function projectChart(){

 $.getJSON('controller.php?rep=1', function(data) { 

    options = {
      chart: {
        renderTo: 'chart_div',
        defaultSeriesType: 'pie'
    },
    title: {
        text: 'Datos de proyecto'
    },

    series: []
    };
       var statusCount = {},
       serie1 = [];

       data.forEach(function(e) {
       statusCount[e.status] = 1 + (statusCount[e.status] || 0);
    });

    $.each(statusCount, function(status, count) {
    serie1.push( [status, count] );
    });
    options.series.push({data: serie1});

    new Highcharts.Chart(options);

    });
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-17 19:54:47

您只能执行POST请求或GET请求,而不能同时执行这两者,因此不要在检查POST请求是否完成的函数中返回GET变量的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if ( isset($_POST["search"]) && trim( $_POST["search"] ) == "go" ){ 
    $name    = $_POST['term'];
    $project = new Project();
    $pro     = $project->get_project($name);  
    $serv    = $project->get_project_service_by_id($pro);
    exit;
}

if(isset($_GET['rep']))
    echo json_encode($serv); 
    exit;
}

另一方面,进行两个ajax调用有什么意义,只需在提交表单的第一个调用中返回数据?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17155576

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文