javascript - ajax 调用后图像不显示 [Symfony2]

标签 javascript php jquery ajax symfony

我正在开发一个电子商务网站项目,但遇到一个问题, 实际上我有一个产品详细信息页面,对于每个产品我都有一个颜色,所以我试图用ajax显示与颜色匹配的图像。这是产品页面: 当我点击颜色时,我得到颜色并启动ajax功能

这是我的代码:

“ Twig ”:

        <a class="color1" onclick="changecolor('{{i.color}}', {{i.idproduit.idproduit}});" style="background-color: {{i.color}}" href="javascript:void(0);"></a>
...
    <script>
            function changecolor(color, idprod) {

                var idprod = idprod;
                var color = color;
                var DATA = 'idprod=' + idprod + '&color=' + color;
                $.ajax({
                    type: "POST",
                    url: "{{ path('change_product_color')}}",
                    data: DATA,
                    cache: false,
                    success: function (data) {
                        $('#resultats').html(data);

                    }
                });
                return false;
            }

        </script>

“changecolor.html.twig”

<div id="resultats" class="tovar_view_fotos clearfix">
    <div id="slider2" class="flexslider">
        <ul class="slides">
            <li><a href="javascript:void(0);" ><img src="{{ asset(path('my_image_route1', {'id': pimg.idimage})) }}" alt="" /></a></li>
            <li><a href="javascript:void(0);" ><img src="{{ asset(path('my_image_route2', {'id': pimg.idimage})) }}" alt="" /></a></li>

        </ul>
    </div>
    <div id="carousel2" class="flexslider">
        <ul class="slides">
            <li><a href="javascript:void(0);" ><img src="{{ asset(path('my_image_route1', {'id': pimg.idimage})) }}" alt="" /></a></li>
            <li><a href="javascript:void(0);" ><img src="{{ asset(path('my_image_route2', {'id': pimg.idimage})) }}" alt="" /></a></li>

        </ul>
    </div>
</div>

“ Controller 中的操作”

public function changeColorAction() {

        $request = $this->container->get('request');
        if ($request->isXmlHttpRequest()) {
            $id=$request->request->get('idprod');
            $c=$request->request->get('color');
            $em = $this->getDoctrine()->getManager();
            $produit = $em->getRepository('WelcomeBundle:Produit')->find($id);
            $stock = $em->getRepository('WelcomeBundle:Stock')->find($produit->getIdstock());
            $boutique = $em->getRepository('WelcomeBundle:Boutique')->find($stock->getIdboutique());
            $colors = $em->getRepository('WelcomeBundle:Produitimage')->findBy(array('idproduit' => $id));
            $sizes = $em->getRepository('WelcomeBundle:Produitsize')->findBy(array('idproduit' => $id));
            $query5 = $em->createQuery("SELECT m FROM WelcomeBundle:Produitimage m WHERE m.color='$c' AND m.idproduit='$id'");
            $pimg = $query5->getResult();
            $pimg1 = $pimg[0];

            return $this->container->get('templating')->renderResponse('TMClientBundle:Client:changecolor.html.twig', array(
                        'product' => $produit,
                        'sizes' => $sizes,
                        'colors' => $colors,
                        'boutique' => $boutique,
                        'pimg' => $pimg1
            ));
        } else {
            return $this->productPageAction($id);
        }
    }

此图片描述了问题:

检查代码后,图像存在但未显示!

最佳答案

这似乎是 dom/javascript 问题。

#resultats 指的是什么?

你的ajax结果包含什么?

也许你应该尝试创建/替换 img 标签:

var img = document.createElement("img");
img.src = "images/"+your_image;
document.getElementById('resultats').appendChild(img);

请务必删除以前的附加内容,或者可以简单地使用:

document.getElementById("your_image_el_id").src="your/image_path.jpg";

关于javascript - ajax 调用后图像不显示 [Symfony2],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37072218/

相关文章:

javascript - JQuery 在单击按钮时添加多个可调整大小的 Div

javascript - 可调整大小的 div 中的 Bootstrap 网格系统响应实用程序

javascript - 使用 $resource 时 ng-Table 排序和搜索不起作用

php - 如何在 yii2 中为 rollup 编写查询

php - 浏览器后退按钮 Ajax

javascript - 对于非实时网站/应用程序,node.js 是否过多?

javascript - 使用 AJAX jquery 对表进行排序

javascript - Rails 3 自动完成 : Whats my route?

javascript - 使用 CSS 和 JavaScript 进行幻灯片放映

jquery - 根据 angularjs 中的操作系统更改 CSS