我在点击按钮后尝试重定向用户。 但是重定向不起作用。 这是我处理按钮点击的js代码。
$('#MyButton').click(function() {
$.ajax({
url: '<?php echo Url::to(['configurator/compare']) ?>',
type: 'POST',
data: {
Ref : Ref,
searchname: $("#searchname").val() ,
searchby:$("#searchby").val() ,
_csrf : '<?=Yii::$app->request->getCsrfToken()?>'
},
success: function (data) {
}
});
请求已执行但我没有重定向到网址。 当我点击按钮时,我会停留在同一页面上。
答案 0 :(得分:1)
如果您不想将任何数据退回给您,那么成功&#39;功能,比在您的控制器&#39;配置器&#39;,方法&#39;比较&#39;,处理您的数据后,您可以重定向到&#39;查看&#39;你想要的:
$data = Yii::$app->request->post();
// do what you want with data
return $this->redirect(['controller/action']);
答案 1 :(得分:0)
您发布的代码不会执行重定向。
它只是向url:
('配置器/比较')发出ajax POST请求并传递data:
中的参数
要执行重定向,您可以在success:
回调中执行此操作,例如
success: function (data) {
window.location.href = 'http://google.com';
}
您可以对上面的网址进行硬编码,也可以将其基于您发布到的脚本的输出,可以通过访问data
回调中的success
来获取。
答案 2 :(得分:0)
var match = document.querySelectorAll("._div");
for(var i = 0; i <= match.lenght; i++){
match.item(i).addEventListener('click', function(event){
console.log("div clicked:"event.target)
if(event.target.dataset.div == "2"){ // do something ... }
})
}
答案 3 :(得分:0)
您可以在控制器中设置路径并将URL发送回页面。
Name
在您的查看页面上,您所要做的只是
public function actionAjaxMethod() {
//my logic
//if everything is successfulget the url path you want to redirect to.
$url = Yii::$app->getUrlManager()->createUrl("/controllerName/methodName");
return \yii\helpers\Json::encode([
'status' => true,
'url' => $url,
]);
}