Yii2中的Ajax + Controller Action

user3640056:

我是编程新手,当用户输入数据并单击“提交”按钮时,我试图调用一个函数。我正在使用Yii2,但对Ajax不熟悉。我尝试开发函数,但未调用控制器动作。

这是我正在尝试的示例代码:

views / index.php:

<script>
    function myFunction()
    {
        $.ajax({
            url: '<?php echo Yii::$app->request->baseUrl. '/supermarkets/sample' ?>',
           type: 'post',
           data: {searchname: $("#searchname").val() , searchby:$("#searchby").val()},
           success: function (data) {
              alert(data);

           }

      });
    }
</script>

<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;

?>
<h1>Supermarkets</h1>
<ul>

<select id="searchby">
    <option value="" disabled="disabled" selected="selected">Search by</option>
    <option value="Name">Name</option>
    <option value="Location">Location</option>
</select>

<input type="text" value ="" name="searchname", id="searchname">
<button onclick="myFunction()">Search</button>
<h3> </h3>

控制器:

public function actionSample(){         
     echo "ok";
}

我的问题是,当我单击“搜索”按钮时,什么也没有发生,而当我尝试对其进行调试时,调试器将不运行任何代码!

ankitr:

这是您可以根据需要修改的示例

public function actionSample()
{
if (Yii::$app->request->isAjax) {
    $data = Yii::$app->request->post();
    $searchname= explode(":", $data['searchname']);
    $searchby= explode(":", $data['searchby']);
    $searchname= $searchname[0];
    $searchby= $searchby[0];
    $search = // your logic;
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    return [
        'search' => $search,
        'code' => 100,
    ];
  }
}

如果这将成功,您将在Ajax成功块中获取数据。请参阅浏览器控制台。

  $.ajax({
       url: '<?php echo Yii::$app->request->baseUrl. '/supermarkets/sample' ?>',
       type: 'post',
       data: {
                 searchname: $("#searchname").val() , 
                 searchby:$("#searchby").val() , 
                 _csrf : '<?=Yii::$app->request->getCsrfToken()?>'
             },
       success: function (data) {
          console.log(data.search);
       }
  });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否等效于Yii2中的“ Yii :: app()-> runController('controller / action')”?

jQuery Ajax发布未运行Controller Action

Yii2需要所有Controller和Action才能登录

yii2 Controller动作注入如何工作

Html.BeginForm在Controller中调用正确的Action

在使用Fetch Controller的TableView中添加Edit Row Action?

Yii1:Controller :: beforeRender in Yii2

Laravel:使用Ajax和多个controller @ action更改div

Controller Action中的UrlHelper无法建立正确的URL

Yii2 Rest Controller和公共变量

如何在Yii2 REST Controller中返回空白主体?

使用Ajax C#在不同的Controller / Action中调用一个动作

如何在AuthorizationHandler中获取Controller和Action?

通过action()指定Yii2控制器中的动作请求动词

使用jQuery Ajax MVC4将下拉列表的选定值发送回Controller Action

在Typo3的Controller Action中获取Fluid模板的HTML

使用Jquery调用Controller Action

Zend Framework访问Controller Action Helper中的baseUrl()

如何检查yii2关系是否存在show controller

如何在Yii2中将变量从AccessFilter传递到Controller

在Controller Action中执行SQL查询

如何使用Controller Create Action中的状态填充SelectList

如何在Yii2中创建MY_Controller

如何在Yii2 Framework中的Controller Console中获取配置参数

如何将从controller1的视图渲染为controller2 yii2的视图?

Rest ActiveController Yii2中具有id的Action中的自定义操作

Yii框架1.1在Controller action中获取http请求Header

在 Magento 2 中获取 checkout_onepage_controller_success_action 上的送货地址

我无法通过 Ajax Post 调用 Controller Action