Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Ajax与Symfony2集成_Ajax_Symfony - Fatal编程技术网

如何将Ajax与Symfony2集成

如何将Ajax与Symfony2集成,ajax,symfony,Ajax,Symfony,我正在寻找关于symfony2中ajax的简单教程/示例,适合初学者 我举了以下例子: city.php: ajax_req.js: index.html: 如何将这些内容放入Symfony2应用程序中?很简单。 我将通过3个步骤说明如何在Symfony2中进行AJAX调用。对于以下示例,假设使用jQuery库 为必须处理AJAX调用的操作定义路由。例如 AcmeHomeBundle_ajax_update_mydata: pattern: /update/data/from/aja

我正在寻找关于symfony2中ajax的简单教程/示例,适合初学者

我举了以下例子:

  • city.php:

  • ajax_req.js:

  • index.html:

如何将这些内容放入Symfony2应用程序中?

很简单。 我将通过3个步骤说明如何在Symfony2中进行AJAX调用。对于以下示例,假设使用jQuery库

  • 为必须处理AJAX调用的操作定义路由。例如

    AcmeHomeBundle_ajax_update_mydata:
      pattern:  /update/data/from/ajax/call
      defaults: { _controller: AcmeHomeBundle:MyAjax:updateData }
    
  • Home
    捆绑包的
    MyAjax
    控制器中定义操作。例如

    public function updateDataAction(){
      $request = $this->container->get('request');        
      $data1 = $request->query->get('data1');
      $data2 = $request->query->get('data2');
      ...
      //handle data
      ...
      //prepare the response, e.g.
      $response = array("code" => 100, "success" => true);
      //you can return result as JSON
      return new Response(json_encode($response)); 
    }      
    
  • 准备
    AJAX
    调用
    Twig
    模板,例如:

    function aButtonPressed(){
        $.post('{{path('AcmeHomeBundle_ajax_update_mydata')}}',               
                    {data1: 'mydata1', data2:'mydata2'}, 
                function(response){
                        if(response.code == 100 && response.success){//dummy check
                          //do something
                        }
    
        }, "json");    
    }
    
    $(document).ready(function() {     
      $('button').on('click', function(){aButtonPressed();});
    });
    
    您可以通过使用其他AJAX调用来更改示例


您是否尝试过在没有ajax的情况下创建实体/表单/动作/视图?是的,我在没有ajax的情况下创建此代码(使用Symfony2)在没有ajax的情况下显示此代码,请回答您的问题,但答案帮助了我一个lotcontroller routing ajax.js视图:当我打开浏览器时,我只看到:{“code”:100,“success”:true}ibeginner@wilsonrufus不JS总是在客户端执行,PHP总是在服务器端执行。使用ajax,您不会在一次调用中在客户端呈现整个页面。客户端对URL的请求。服务器首先返回主PHP页面,其中包含我演示的JS代码。然后,一旦浏览器收到响应并加载主页面(最后文档准备就绪),就会执行JS代码。JS代码调用Symfony操作(由唯一URL映射)并等待JS处理的结果。您不需要测试请求是否为xmlHttpRequest吗?对于Symfony 2.2和更高版本,使用新的JsonResponse($data)而不是新的响应(json_encode($data)),您可以简单地使用
返回新的JsonResponse($Response)
不进行编码。