如何在jQuery对话框中使用post数据调用Symfony控制器?
我正在尝试用一些post值加载控制器(因为它们是数据,所以不太适合放在GET;)我尝试了以下方法:如何在jQuery对话框中使用post数据调用Symfony控制器?,jquery,symfony,post,jquery-dialog,Jquery,Symfony,Post,Jquery Dialog,我正在尝试用一些post值加载控制器(因为它们是数据,所以不太适合放在GET;)我尝试了以下方法: $(“#对话框”).load('http://127.0.0.1:8000/XXX/YYY“,{“开始”:开始}).dialog('open') 在控制器中称为: $start=$request->get(“start”) 但我明白了:“注意:未定义变量:请求”有人能解释一下吗 编辑:这是我的控制器: namespace OurBundle\BuildingBundle\Controller;
$(“#对话框”).load('http://127.0.0.1:8000/XXX/YYY“,{“开始”:开始}).dialog('open')代码>
在控制器中称为:
$start=$request->get(“start”)代码>
但我明白了:“注意:未定义变量:请求”有人能解释一下吗
编辑:这是我的控制器:
namespace OurBundle\BuildingBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use OurBundle\BuildingBundle\Entity\Availability;
use OurBundle\BuildingBundle\Form\AvailabilityType;
class AvailabilityController extends Controller
{
public function formAction(Response $request = null ) {
$iduser = '59';
$start= $request->get("start");
$form = $this->createForm(new AvailabilityType( $iduser, $start ), new Availability());
return $this->render('OurBundleBuildingBundle:Availability:create.html.twig', array('form' => $form->createView()));
}
...
我很愚蠢,忘记了响应,但仍然不起作用(实际上对话框是空的(它不显示任何错误),但它应该显示一个表单(当我放入$start==null时,它会显示…)
当我在视图中显示$request时,它总是不显示任何内容(表示为null)在控制器中确保将请求作为参数:
<?php
namespace Acme\DemoBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
class DemoController extends Controller
{
/**
* @param Request $request
*/
public function myDemoAction(Request $request)
{
/** Get value from request */
$start = $request->get('start');
// ...
}
}
我不知道这对您有什么帮助,也不清楚您是如何获得$request
变量的(如果您将您的操作包括在问题中会更好),但我认为您在这里做错了:-如果您将对象作为数据提供,则通过POST加载数据,因此您正在传递对象,并且发送POST请求,但为什么要获取值作为$request->get('start')
我认为你应该按照Patt的答案来做,但是你不应该通过$request->get()
来获取值,而应该使用“$request->request->get('SOME_DATA')”(通过POST),或者$request->query->get('SOME_DATA')
(通过get)。好的,我不知道为什么,但我不得不这样做:
$start=$this->getRequest()->get('start');
从错误消息$request->get(“start”)开始
那么,嗯,这是为什么呢?在PHP中似乎是一个与jQuery或对话框无关的错误。即使对于GET或对话框启动的请求,$request
变量也应始终定义;未定义在某个地方是一个编码错误。
$start = $request->get('start', 'your_default_value');