2014-08-28 56 views
1

我試圖加載一些崗位價值控制器(因爲他們是如此DATAS不是說好把它放在GET;))我嘗試這樣做:如何在jQuery對話框中使用post數據調用Symfony控制器?

$("#dialog").load('http://127.0.0.1:8000/XXX/YYY', {"start" : start}).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())); 

} 
... 

我傻了,忘了響應,但仍然無法正常工作(其實對話框是空的(它沒有顯示任何錯誤),但它應顯示形式(當我把$開始== NULL它..)

當我顯示視圖$請求時,它總是顯示無(說這是空)

+0

開始在錯誤信息'$請求 - > GET(「開始」)'這樣嗯,*爲什麼*是?似乎PHP中的錯誤與jQuery或對話框無關。 *期望*即使對於GET或對話發起的請求,也總是定義'$ request'變量;沒有被定義是某處的編碼錯誤。 – user2864740 2014-08-28 21:58:37

回答

0

好吧,我不知道爲什麼,但我不得不這樣做:

$start= $this->getRequest()->get('start');

0

在你控制器確保你有請求作爲參數

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

     // ... 
    } 

} 

快速提示

如果你需要啓動一個默認值:

$start = $request->get('start', 'your_default_value'); 
0

我不知道這可以幫助你,也不太清楚,你怎麼變得$request變量(如果你的行爲包括在內,會更好一些n),但我認爲你在這裏做錯了什麼:.load() - 通過POST加載數據,如果你提供對象作爲數據,所以你傳遞對象,POST請求正在發送,但爲什麼得到的值爲$request->get('start')

我想你應該遵循帕特的答案,但不是由$request->get()獲取值,你應該使用「$請求 - >請求 - >獲取(」 SOME_DATA「)」(由POST),或$request->query->get('SOME_DATA')(通過GET)。

相關問題