2016-05-13 52 views
0

这里我的JavaScript功能:获得从AJAX数据用symfony

var lastid = 0; 
function charger() { 

    setTimeout(function(){ 
     $.post(
      'http://localhost:8000/chat', 
      {id: lastid}, 
      function(data) { 
       $('#chat').prepend(data); 
      } 
     ); 
     charger(); 
    },5000); 
} 

这里我.PHP控制器:

public function addMessagesAction(Request $request){ 
    $id = $request->request->get('lastid'); 
    $idall = $request->request->all(); 
    var_dump($id); 
    var_dump($idall); 
} 

和从的var_dump我的结果:

NULL 阵列( 0){}

我的问题是:

如何让我的“lastid”在我的控制器?

+0

您从您的JavaScript被称为'id'发送'lastid'变量,所以你赢了”在你的php代码中永远不会“lastid”。如果你想获得'lastid',你必须在你的javascript代码中以'{lastid:lastid}'的形式发送它。 – dlopez

+0

我已经在我的JavaScript文件中通过lastid更改了id,但结果相同... – 0x4d

+0

您能向我们展示该问题的所有相关代码吗?比如说,路由配置会很麻烦。 – dlopez

回答

3

这可能是因为你设置了JS id param而不是lastidlastid是分配给id PARAM

{id: lastid}, //{name: value} 

因此,你应该将其更改为JS变量:

{lastid: lastid},