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


How to retrieve jquery ajax response to php variable?

如何在成功后将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);
                }

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

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);

}

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

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

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

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