Когда я показываю выбранные продукты, сохраненные в сеансах, у меня есть кнопка, с которой я хочу удалить конкретный продукт, если мне это не нужно. Могу ли я достичь этого с помощью javascript? Если нет, то какие другие решения этой проблемы?Symfony2 можно ли удалить переменную сеанса с помощью Javascript?
Я слышал, что вы не можете установить переменные сеанса с помощью javascript, так что, вероятно, то же самое происходит с их удалением, но я слышал, что вы можете что-то сделать с ajax, чтобы удалить их? В любом случае им отображая свои продукты, как это (сейчас им только показывает цену продукта динамически):
{% for item in items %}
<tr>
<td><img width="60" src="{{ asset('bundles/mpFrontend/assets/products/4.jpg') }}" alt=""/></td>
<td>{{ item.model }}</td>
<td>
<div class="input-append"><input class="span1" style="max-width:34px" placeholder="1" id="appendedInputButtons" size="16" type="text">
<button class="btn" type="button"><i class="icon-minus"></i></button>
<button class="btn" type="button"><i class="icon-plus"></i></button>
<button class="btn btn-danger" type="button" onclick="removeItem(item.id)"><i class="icon-remove icon-white"></i></button>
</div>
</td>
<td>$120.00</td>
<td>$25.00</td>
<td>$15.00</td>
<td>$110.00</td>
</tr>
{% endfor %}
UPDATE Это то, что я сделал уже:
RemoveAction в контроллере:
маршрутизацииpublic function removeAction($itemId)
{
$session = $this->getRequest()->getSession();
$session->remove();
return $this->render('MpShopBundle:Frontend:product_summary.html.twig');
}
контроллер:
removeItem:
pattern: /remove
defaults: { _controller: MpShopBundle:Homepage:remove }
Сценарий:
<script>
$(".btn btn-danger").click(function(){
var itemId = $(this).val();
$.ajax({
type: "POST",
url: "{{ path('removeItem') }}",
data: { itemId: itemId }
});
</script>
Нажатие на кнопку не делает ничего, и им не удивляйтесь, так как это мой первый раз действительно с помощью JavaScript я думаю, что я сделал что-то не так?
Поскольку я довольно новичок в программировании, вы можете объяснить первую часть более кратко? – Dominykas55
Это более ясно? – MouradK
Хорошо. Переменная $ itemId должна быть указана в функции javascript, затем я удаляю сеанс на основе идентификатора. Часть ответа мне непонятна. Это то же самое, что и рендер? – Dominykas55