通过ajax将数据发布到yii2中的另一个控制器

时间:2017-11-04 07:24:39

标签: javascript ajax post yii2

我是yii的新手。我想在点击的情况下将一个参数列表从js传递给我的控制器'一个按钮。 我的代码是(在名为' ostan' in url:http://localhost/web/site/中的视图):



var url ='http://localhost/web/';
$(document).ready(function(){

$("#btn").click(function(){
    
    var vname = $("#name").val();
    var vemail = $("#email").val();
    if(vname=='' && vemail==''){
        alert("Please fill out the form");
    }else if(vname=='' && vemail!==''){
        alert('Name field is required')
    }else if(vemail=='' && vname!==''){
        alert('Email field is required')
    }else{
        $.post(url+"Category/Gett",{name:vname,email:vemail},function(response,status){ 
            alert("*----Received Data----*\n\nResponse : " + response+"\n\nStatus : " + status);
            $("#form")[0].reset();
        });
    }

});

});
   

    <form id="form" method="post">
    <div id="namediv"><label>Name</label>
    <input type="text" name="name" id="name" placeholder="Name"/><br></div>
    <div id="emaildiv"><label>Email</label>
    <input type="text" name="email" id="email" placeholder="Email"/></div>
    
    <button id="btn">Send Data</button>
    </form>
&#13;
&#13;
&#13;

控制器代码:

public function actionGett()
{

    $name = $_POST["name"];
    $email = $_POST["email"]; 
    echo "Welcome ". $name ."!";  

}

1 个答案:

答案 0 :(得分:0)

假设您的功能actionGett()位于CategoryController课程中,您应该将表单发布到url+"category/gett"而不是url+"Category/Gett"。有关Yii2如何从控制器,操作,模块等创建路由的更多信息here