@Bersonazh

В чем ошибка при передаче данных?

Всем привет. Делаю свой wishlist на yii2, но использую стандартную форму отправки.

Вопрос в том, почему с сервера приходит такой ответ
5cae9978bb309738501638.png

Передаю id товара, который лежит в значении чекбокса. И сервер его возвращает, но помимо него возвращает еще кучу ненужной информации.

Файл выгрузки товара
class ProductViewList extends Widget
{

	public $data;	

    public function run()
	{

		$data = ProductList::find()->indexBy('id')->asArray()->all();

		foreach ($data as $id => $product) {
			$goods = 
			' <div class="product-cart" > ' 
			. '<div class="product-cart_wrapper"> ' 
			. '<form class="product-cart_favourite"> ' 
			. '<input type="checkbox" value="'. $product['id'] .'" name="radio" id="'. $product['id'] .'">'
			. '<button type="submit"> '
			. '<label for=" '. $product['id'] .' ">'
			. '<img src="/images/heart.png">'
			. '</label>'
			. '</button>'
			. '</form>' 
			. '<img class="product-cart_img" src="/images/' . $product['img'] .' " >'
			. '<div class="cart-descr_wrapper">'
			. '<div class="product-cart_name" > ' . $product['name'] . '</div>'
			. '<div class="product-cart_price" > ' . $product['price'] . " $" . '</div>'
			. '</div>'
			. '</div>'
			. '</div>';

			echo $goods;
		}

		return $goods;

	}
}


Аякс

$('.product-cart_favourite').submit(function(e){

	if( $(this).hasClass('added') )
	{
		$(this).removeClass('added');
		$(this).children('button').children('img').attr('src', '/images/app.jpg');

	}else{
	

		e.preventDefault();

		var data = 'radio=' + $(this).children('input').val();
		// var data = 'radio=' + $(this).serialize();

		console.log(data);

		$.ajax({
            url: 'wishlist',
            type: 'POST',
            data: data,
            success: function(res){
            	console.log(res)
               
            },
            error: function(){
                console.log('error');
            }
        });

	}

});

Обработчик
<code lang="php">
<?php

	$data = $_POST['radio'];
 	
 	echo $data;
</code>
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@Bersonazh Автор вопроса
В общем, если кому-то будет интересно, ошибка была в том, что checkbox не заполнялся по нажатию на label, т.к. в этом месте '' были допущены лишние пробелы и браузер видел их с разными id.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы