如何检索jquery ajax对php变量的响应?

时间:2013-12-10 06:01:19

标签: javascript php jquery ajax

如何在成功后将jquery ajax响应传递给php变量。这是我的代码:

process.php

    $start = "";
    $end = "";
    if(isset($_POST['tampStart']))
    {
        $start = $_POST['tampStart'];
    }
    if(isset($_POST['tampEnd']))
    {
        $end = $_POST['tampEnd'];
    }

    $SQL = "SELECT * FROM `values` WHERE date BETWEEN '".$start."' and '".$end."'";
    $result = mysql_query($SQL);

    $prefix = '';
    while ( $row = mysql_fetch_assoc( $result ) ) {
        $prefix .= "[\n"."'".$row['month']."'".', '.$row['days']."]".",";
    }

    echo rtrim($prefix, ",");

的index.php

    var dStart = $('#textInput1').val();
var dEnd = $('#textInput2').val();

var form_data = {
    tampStart: dStart,
    tampEnd: dEnd
};

$.ajax({
    url: 'process.php',
    type: 'POST',
    async : true, 
    data: form_data,
    dataType: 'text',
    success: function(resp){                            
        $('#content').html(resp); 
        //pass to php variable ?
    }
});

将响应放入div($('#content')。append(resp);)时没有问题,但是如何将响应放入php变量中。谢谢你提前..

更新我的Highcharts代码:

function createChart(datan) {
                 //alert(datan);       
                    Highcharts.setOptions({
                        lang: {
                            drillUpText: 'Back to {series.name}'
                        }
                    });

                    var options = {

                        chart: {
                            height: 300
                        },

                        title: {
                            text: 'Highcharts Drilldown Plugin'
                        },

                        xAxis: {
                            categories: true
                        },

                        drilldown: {
                            series: [{
                                id: 'fruits',
                                name: 'Fruits',
                                data: [datan]  //here #*
                            }, {
                                id: 'cars',
                                name: 'Cars',
                                data: [{
                                    name: 'Toyota', 
                                    y: 4,
                                    drilldown: 'toyota'
                                },
                                ['Volkswagen', 3],
                                ['Opel', 5]
                                ]
                            }, {
                                id: 'toyota',
                                name: 'Toyota',
                                data: [
                                    ['RAV4', 3],
                                    ['Corolla', 1],
                                    ['Carina', 4],
                                    ['Land Cruiser', 5]
                                ]
                            }]
                        },

                        legend: {
                            enabled: false
                        },

                        plotOptions: {
                            series: {
                                dataLabels: {
                                    enabled: true
                                },
                                shadow: false
                            },
                            pie: {
                                size: '80%'
                            }
                        },

                        series: [{
                            name: 'Overview',
                            colorByPoint: true,
                            data: [{
                                name: 'Fruits',
                                y: 10,
                                drilldown: 'fruits'
                            }, {
                                name: 'Cars',
                                y: 12,
                                drilldown: 'cars'
                            }, {
                                name: 'Countries',
                                y: 8
                            }]
                        }]
                    };

                    // Column chart
                    options.chart.renderTo = 'container1';
                    options.chart.type = 'column';
                    var chart1 = new Highcharts.Chart(options);

                }

我将highcharts配置为函数。当我发出警报(datan)时,它显示了来自ajax响应的数据,但是当我输入Drilldown选项数据时(参见上面的符号#*),高图配置无法读取它..

3 个答案:

答案 0 :(得分:2)

PHP在服务器上运行而不是在客户端运行,所以你要求的东西只能在服务器上运行。您必须根据自己的需要自定义此代码。

$.ajax({
    url: 'process.php',
    type: 'POST',
    async : true, 
    data: form_data,
    dataType: 'text',
    success: function(resp){                            
       // $('#content').html(resp); 
        createChart(resp);
    }
});
var chart;
function createChart(data) {
var options = {

    chart: {
        height: 300
    },

    title: {
        text: 'Highcharts Drilldown Plugin'
    },

    xAxis: {
        categories: true
    },

    drilldown: {
        series: data}
};


options.chart.renderTo = 'content';
options.chart.type = 'column';
var chart1 = new Highcharts.Chart(options);



}

答案 1 :(得分:1)

Javascript是客户端脚本。您不能将javascript值直接分配给php变量。

  1. 一种方法是在PHP中设置SESSION变量。在您的情况下在process.php文件中。
  2. 另一种方法是使用数据库/文件。

答案 2 :(得分:0)

好吧,如果你真的想这样做,你可以在Javascript中设置一个带有所需变量的cookie,然后用PHP访问它。

但是,还有另一种方式。你可以在客户端做任何你想做的事情,当你想将变量传送到服务器端时,只需在php页面上打开一个ajax连接,它将处理变量并通过POST数据将实际变量交给它。