@hollanditkzn

Как без перезагрузки вывести внутри блока другую страницу?

У меня возникла проблема вот в такой блок c83897393b3a4b2fa5d8a894effbd620.png
Когда пользователь нажимает на кнопку "редактирование" то должно данный блок должен смениться на другой без перезагрузки страницы.
Использовал вот так примерно
<div class="view-zakaz" style="color: black">
<?= Html::button('Редактировать', ['id' => 'edit']) ?>
</div>

И в js я сделал так
$(document).ready(function(){
$('#edit').on('click', function(){
		$.ajax({
			url: 'zakazedit.html',
			success: function(html){
				$('.view-zakaz').html(html);
			}
		})
	});
});

пробовал и php, такой же создать файл _zakazedit.php.
Но тоже ничего не получается выходит ошибка Failed to load resource: the server responded with a status of 404 (Not Found)
  • Вопрос задан
  • 936 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
Вы обращаетесь к несуществующей странице - и это не удивительно. Вы должны создать метод в каком-нибудь контроллере, который будет с помощью renderPartial или renderAjax осуществлять отрисовку Вашего блока. В Ajax соответственно необходимо указывать ссылку на этот метод
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1. Можно юзать PJAX www.yiiframework.com/doc-2.0/yii-widgets-pjax.html
2. Зачем столько js кода, проще так:
<div class="view-zakaz" style="color: black">
<?= Html::a('Редактировать', ['/some-controller/edit-action','id' => $model->id]) ?>
</div>

$('#edit').on('click', function(e){
e.preventDefault(); //отменяем стандартный get для ссылки
var url = $(this).attr('href'); // берем адрес ссылки
$('.view-zakaz').load(url); //отправляем get ajax на адрес ссылки, полученный ответ засовываем в нужный контейнер

Итого кнопка содержит урл где брать форму, js отменяет переход (стандартное действие) и загружает ajax-ом то что отдал экшен в блок с классом view-zakaz
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы