2013-12-10 29 views
1

如何将成功后的jquery ajax响应传递给php变量。这是我的代码:如何检索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($( '#内容'),没有问题。 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选项数据(请参阅上面的#号*)显示出来时,高图配置无法读取它..

+0

你能解释一下你想要做什么后得到回应。有什么需要保存对PHP变量的响应。 –

+1

@Deepu OP想要在'JQuery'中获得'AJAX'响应并分配到一个'PHP'变量 –

+0

我想用这个php变量来设置Highchart的数据选项,结果将会是['august',30 ],['september',30],...等 ,但现在我只能将该响应转换为div,不能到php变量.. – asik

回答

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. 另一种方法是使用数据库/文件。
0

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

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