Переменная Concat в ajax symfony

Я хочу добавить строку таблицы после того, как нажимаю на кнопку «Добавить в корзину», но проблема заключается в идентификаторе строки таблицы, я хочу сделать что-то вроде этого

что я хочу добавить после нажатия кнопки

         function ajouter(idd, prix)
                                {
                                    var test = idd;
                                    var urlEdit = "{{ 
                path('ajouterAuPanier', { 'id': "id" }) }}";
                                    urlEdit=urlEdit.replace("id",test);
                                    $.ajax({
                                        method: 'POST',
                                        url: urlEdit,
                                        success: function(d)
                                        {
                                            if (d.msg == "success")
                                            {
                                                i++;
                                            alert("Item Added");
                                            var prixTotal = parseInt(document.getElementById('prixTotal').innerText);
                                            prixTotal = prixTotal + prix;
                                            document.getElementById('prixTotal').innerText = prixTotal;
                                               var id = {{ panier.id|json_encode() }};
                                                var table = document.getElementById("customers");
                                                var row = table.insertRow();
                                                var cell1 = row.insertCell(0);
                                                var cell2 = row.insertCell(1);
                                                var cell3 = row.insertCell(2);
                                                cell1.innerHTML =document.getElementById(idd+""+idd).innerHTML;
                                                cell2.innerHTML  = "<div id = "+id+id+id+">1</div><input type=\"submit\" name=\"+\" value=\"+\" style=\"margin-top: -11%;margin-left: 10%;\" onclick=\"updatePlus(i)\">" +
                                                    "<input type=\"submit\" name=\"-\" value=\"-\" style=\"margin-top: -19%;margin-left: 31%;\" onclick=\"updateMinus(i) \">\n";
                                                cell3.innerHTML  = "<div id = "+id+id+">"+prix+"</div>";
                                           // document.getElementById('cartt').innerHTML + = "<div><td> PRODUIT AJOUTE </td><td> 1 </td></div>";
                                           }


                                        }
                                    });
                                }

Действие моего контроллера:

 public function ajouterauPanierAction($id)
{


        $em = $this->getDoctrine()->getManager();
        $produit = $em->getRepository(Produit::class)->find($id);
        $test = $em->getRepository(Lignedecommande::class)->findExistant($id,$this->getUser()->getId());
        count($test);

        if (($produit != null)&&($test == null))
        {
            $lignedecommande = new Lignedecommande();
            $lignedecommande->setProduitId($produit->getId());
            $lignedecommande->setUserId($this->getUser()->getId()); //à changer avec le fos
            $lignedecommande->setNomProduit($produit->getNom());
            $lignedecommande->setImage($produit->getImage());
            $lignedecommande->setEtat(0);
            $lignedecommande->setQuantite(1);
            $lignedecommande->setPrixTotal($produit->getPrix());
            $em->persist($lignedecommande);
            $em->flush();
            $msg = "success";
        }
        else if ($test != null)
        {
            $line = $em->getRepository(Lignedecommande::class)->findExistant($id,$this->getUser()->getId());

            $line[0]->setQuantite($line[0]->getQuantite()+1);
            $line[0]->setPrixTotal($line[0]->getPrixTotal()+$produit->getPrix());
            $em->flush();
            $msg = "done";
        }
        return new JsonResponse(array('msg' => $msg));
}

что мне нужно получить:

                      <div id = "panier">
                            <td>{{ panier.nomProduit }} </td>
                    ====> <td><div id = {{ panier.id }}{{ panier.id }}{{ panier.id }} > {{ panier.quantite }}</div>

                                <input type = "submit" name = "+" value = "+" style = "margin-top: -11%;margin-left: 10%;" onclick = "updatePlus({{ panier.id }}) ">
                                <input type = "submit" name = "-" value = "-" style = "margin-top: -14%;margin-left: 22%;" onclick = "updateMinus({{ panier.id }}) ">


                            </td>
                            <td><div id = {{ panier.id }}{{ panier.id }}> {{ panier.prixTotal }} </div><br></td>


                        </div>

способ, которым я помещаю этот идентификатор в javascript, не работает, есть ли способ сделать это?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
137
2

Ответы 2

Если ваш код javascript находится внутри тега сценария, обычно он должен работать

<script type = "text/javascript">
    document.getElementById('cartt').innerHTML + = "<div id=\"panier\"> 
    <td>"+document.getElementById('nomP'+id).innerHTML+"</td><div id = "{{ 
panier.id }}{{ panier.id }}">1</div>";
</script>

Но если ваш код находится внутри внешнего кода javascript, я не уверен, работает ли он, потому что интерпретатор twig сначала отображает html-страницу перед загрузкой любых внешних файлов js. Итак, когда файл js загружен, интерпретатор twig завершил свою работу. Однако я не уверен в этом

не сработало, потому что он не знает {{panier.id}}

AOUADI Slim 23.05.2018 17:54

В этом случае просто проверьте, передали ли вы панель переменных в свой контроллер.

Franck Gamess 23.05.2018 18:00

на самом деле я работаю над страницей, которая расширяет макет, который содержит эту панель переменных

AOUADI Slim 23.05.2018 18:02

В действии вашего контроллера вы правильно отрисовываете шаблон? Даже если вы расширите макет, если панель переменных не будет передана в шаблон, который вы визуализируете, этот шаблон не узнает об этом.

Franck Gamess 23.05.2018 18:08

в моем действии контроллера возвращается JsonResponse, а не представление

AOUADI Slim 23.05.2018 18:09

ОК. Обновите свой вопрос с помощью контроллера, пожалуйста

Franck Gamess 23.05.2018 18:33

Шаблон макета, который вы расширяете, можете ли вы попробовать сделать {{dump (panier)}} внутри, чтобы увидеть, определена ли переменная panier?

Franck Gamess 23.05.2018 18:39

Я только что нашел решение :) Я просто возвращаю panier.id из JsonReponse, и он сработал, чем вы, в любом случае за вашу помощь!

AOUADI Slim 23.05.2018 20:16

Пожалуйста. Да, это то, о чем я говорил о передаче значения в вашем ответе, потому что ваш шаблон его не знал.

Franck Gamess 23.05.2018 20:19

ОК. Обновите свой вопрос с помощью контроллера, пожалуйста

Другие вопросы по теме