【问题标题】:How to retrieve jquery ajax response to php variable?如何检索对 php 变量的 jquery ajax 响应?
【发布时间】:2026-02-11 20:50:01
【问题描述】:

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

进程.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 选项数据时(见上面的符号 #*),highchart 配置无法读取它..

【问题讨论】:

  • 你能解释一下得到响应后你想做什么吗?有什么需要将响应保存到一个php变量中。?
  • @Deepu OP 想要在JQuery 中获得AJAX 响应并分配给PHP 变量
  • 我想用那个 php 变量来设置 Highchart 的数据选项,结果将是 ['august', 30], ['september', 30],... 等等,但现在我只能将该响应放入 div,不能放入 php 变量..
  • 是的,这是不可能的,因为PHP脚本是在服务器端运行的。 AJAX 是一种客户端技术——异步 JavaScript 和 XML
  • 成功:function(data){ options.series[0].setData(data); }

标签: javascript php jquery ajax


【解决方案1】:

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



}

【讨论】:

  • 我认为这不是问题的答案
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】: