从查询中检索数据以将其加载到JavaScript变量中

从查询中检索数据以将其加载到JavaScript变量中,javascript,jquery,ajax,function,var,Javascript,Jquery,Ajax,Function,Var,我正在使用Ajax/JQuery将表单中的var($name)发送到page1.php到page2.php,而不刷新页面;它正在发挥作用;当我单击submit按钮时,它会将var$名称从第1页发送到page2.php。我使用JavaScript库制作图表(amcharts),它有一个脚本,需要将数据加载到var(称为chartData)中,该数据是以JSON格式打印的查询结果: Page1.php: <script> var chart; // create chart AmCha

我正在使用Ajax/JQuery将表单中的var($name)发送到page1.php到page2.php,而不刷新页面;它正在发挥作用;当我单击submit按钮时,它会将var$名称从第1页发送到page2.php。我使用JavaScript库制作图表(amcharts),它有一个脚本,需要将数据加载到var(称为chartData)中,该数据是以JSON格式打印的查询结果:

Page1.php:

<script>
var chart;

// create chart
AmCharts.ready(function() {

// load the data
var chartData = AmCharts.loadJSON('http://localhost/Proyect/chart.php');
....
它只是对我的数据库执行一个查询,并以JSON格式打印结果。var chartData只获取打印结果以构建图表

关键是,page2.php(chart.php)上的查询结果中的数据,加载到page1.php中的JavaScript变量(chartData)中,这样它就可以构建图表

Page1.php表单

<form id="form" name="form">
<h3>Fill the name!</h3>
<label>Name:</label>
<input id="name" placeholder="Your Name" type="text">
<input id="submit" type="button" value="Submit">
</form>         
如果我在函数(数据)中输入警报(数据);当我按下“提交”按钮时,它会在page2.php(chart.php)中显示查询结果

好吧,就像我说的,我需要

var chartData = AmCharts.loadJSON('http://localhost/Proyect/chart.php');
当我点击“提交”按钮时,加载或获取数据的结果,这样可以使我成为图表

在我点击“aceptar”后,page1.php不会显示图表,因为这就像var chartData没有获取/加载数据,或者数据就像“擦除”一样,因为var$名称不像keep“living”之类的东西

我不知道我是否必须在函数(数据)中添加一些东西,或者我必须做些什么。我必须使用session来保持page2.php(chart.php)中var$名称的活动性?然后var chartData可以加载查询结果吗


我不知道标题是否正确,但我真的不知道如何命名。

我不100%确定你正在进行的所有活动部分是什么,但我想你只是想将你的帖子改为:

$.post("chart.php", {name1: name},
    function(data) {
    chartData = AmCharts.loadJSON(data);
    $('#form')[0].reset(); // To reset form fields
});

当您直接调用PHP文件时,您这样做与之前发送给它的任何数据无关:也就是说,您只是直接调用该文件,没有POST/GET查询变量。当您使用POST时,您实际上并没有在服务器上存储任何信息,除非您的代码设置为这样做;在您的情况下,您只是发出JSON。由于您希望JSON通过您的函数传递,请在submit函数的成功处理程序中调用它。

是的,这就是解释,我没有存储任何信息,而是直接调用该文件。我像你说的那样更改了Ajax/JQuery函数,但不起作用,我有一个疑问,在page1.php中,amcharts的脚本加载数据的变量在哪里,我必须如何修改它?(var chartData=AmCharts.loadJSON('))?谢谢您的回复。对不起,我错了。我用正确的答案更新了我的答案。您只需要在success函数中调用变量。但是,出于范围限制的原因,您可能希望在调用
var chart
的正下方实例化变量,以确保您可以在需要的地方访问它(基本上,只需在
var-chartData;
下面添加
var-chart;
)。我添加了chartData=AmCharts.loadJSON(数据);在代码中,将chartData更改为var-chartData;在var-chart下面;但仍然不起作用,我认为这就像没有“检索数据”。顺便说一句,AmCharts还有另一个javascript-AmCharts.loadJSON=函数(url){//如果(window.XMLHttpRequest){//IE7+,Firefox,Chrome,Opera,Safari var request=new-XMLHttpRequest();}或者{//IE6的代码,IE5 var request=new-ActiveXObject('Microsoft.XMLHTTP');}//加载它//最后一个“false”参数确保我们的代码将在//数据加载之前等待request.open('GET',url,false);request.send();//解析并返回输出return eval(request.responseText);};代码是否在某处运行?或者可能是一个小提琴?
var chartData = AmCharts.loadJSON('http://localhost/Proyect/chart.php');
$.post("chart.php", {name1: name},
    function(data) {
    chartData = AmCharts.loadJSON(data);
    $('#form')[0].reset(); // To reset form fields
});