我需要显示一个报告,其中包含来自服务器的一些数据,其中还包括一个图表。一旦表单已经提交,im正在尝试使用$.getJSON发送json数据,但是由于某些原因,im甚至无法回显$_GETrep以确保im接收到正确的数据。下面是php代码,下面是js http://jsfiddle.net/f8rGb/2/。
PHP代码
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代码
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);
});
}
发布于 2013-06-17 19:54:47
您只能执行POST
请求或GET
请求,而不能同时执行这两者,因此不要在检查POST
请求是否完成的函数中返回GET
变量的内容:
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调用有什么意义,只需在提交表单的第一个调用中返回数据?
https://stackoverflow.com/questions/17155576
复制相似问题