Предположим есть 3 картинки, по нажатию на любую из них, мне нужно идентифицировать ту, по которой был сделан клик, и соответственно отправить данные об этом на сервер.
Первое что пришло в голову, сделать так:
Добавить ID к картинкам, и после клика менять value у Input, а потом уже отправлять:
View:<img src="/img1.png" id="img1" class="imageSelect">
<img src="/img2.png" id="img2" class="imageSelect">
<img src="/img3.png" id="img3" class="imageSelect">
<?php ActiveForm::begin(['id' => 'form1', 'action' => '/image']); ?>
<?= Html::hiddenInput('ImageNum', ''); ?>
<?php ActiveForm::end(); ?>
Controller:public function actionImage() {
$json = ['response' => 'ok'];
\Yii::$app->response->format = Response::FORMAT_JSON;
return $json;
}
JS:$('.imageSelect').click(function () {
$('input[name=ImageNum]').val($(this).attr('id'));
Send();
});
function Send() {
$('#form1').submit(function (e) {
var url = '/image';
$.ajax({
type: "POST",
url: url,
data: $('form1').serialize(),
success: function (data) {
console.log(data);
}
});
e.preventDefault();
});
}
На деле, при клике на картинке ничего не происходит. Правильный ли такой подход? Если да, то в чём ошибка?