javascript - 打印警报框以响应 yii2 中的 ajax 调用

标签 javascript php jquery ajax yii2

我的 View 文件中有这个 jquery 代码

$('#ticket-ticket_impact_id').change(function() {

  var priority = $('#ticket-ticket_priority_id :selected').val();
  var impact = $('#ticket-ticket_impact_id :selected').val();
  if ($('#ticket-ticket_priority_id').val() == '' || $('#ticket-ticket_impact_id').val() == '') {

  } else {
    $.post('index.php?r=support/ticket/ajax-ticket-sla&ticket_priority_id=' + priority + '&ticket_impact_id=' + impact);
  }
})

$('#ticket-ticket_priority_id').change(function() {

  var priority = $('#ticket-ticket_priority_id :selected').val();
  var impact = $('#ticket-ticket_impact_id :selected').val();
  if ($('#ticket-ticket_priority_id').val() == '' || $('#ticket-ticket_impact_id').val() == '') {

  } else {
    $.post('index.php?r=support/ticket/ajax-ticket-sla&ticket_priority_id=' + priority + '&ticket_impact_id=' + impact);
  }
})

从这里,优先级和影响ID的值被发送到 Controller /ajax函数

public function actionAjaxTicketSla(){
    $ticket_priority_id=$_REQUEST['ticket_priority_id'];
    //var_dump($ticket_priority_id);die();
    $ticket_impact_id=$_REQUEST['ticket_impact_id'];
    if(Sla::find()->where(['ticket_priority_id'=>$ticket_priority_id,'ticket_impact_id'=>$ticket_impact_id])->exists())
    { 

    } else{
        echo '<script type="text/javascript">alert("No sla defined!");</script>';
    }
}

我什至无法在这里回应某些内容,不知道这里出了什么问题,任何帮助将不胜感激。

回应 enter image description here

最佳答案

您正在混合 POST 、 GET 和 REQUEST

在 ajax 中,您使用 POST 但不发送任何内容作为 POST 参数 相反,您将 url 中的参数作为 GET 参数传递 在实际操作中,您会查找 REQUEST,但不会查找 GET(或 post)

并且您可以直接访问 $_REQUEST 而不是使用 yii2 方法来实现此目的

你应该重新考虑你的代码..

无论如何,这只是第一步 查看您的 ajax 调用,您可以使用您传递的参数作为 get param

  public function actionAjaxTicketSla(){
      $request = Yii::$app->request;
      $get = $request->get();
      $ticket_priority_id=$get['ticket_priority_id'];
      //var_dump($ticket_priority_id);die();
      $ticket_impact_id=$get['ticket_impact_id'];
      if(Sla::find()->where(['ticket_priority_id'=>$ticket_priority_id,'ticket_impact_id'=>$ticket_impact_id])->exists())
      { 
          echo 'OK';
      } else{
          echo 'No sla defined';
      }
  }

以及在客户帖子中

   $.post('index.php?r=support/ticket/ajax-ticket-sla&ticket_priority_id=' + 
              priority + '&ticket_impact_id=' + impact, 
                  function(data){ 
                          if (data !='OK') {
                           alert(data);
                          }
                  });

关于javascript - 打印警报框以响应 yii2 中的 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45212956/

相关文章:

javascript - 在JSP页面中使用jquery通过一个提交按钮验证两个表单

javascript - 重叠对象上的 HTML Canvas 事件?

php - 使用 PHP 进行正确且方便的错误处理和日志记录

php - MySQL 使用 Substring 和 Like 仅连接部分字段

jquery - 如何使用 ajax 发布包含动态表中的字段的表单,可以为其动态添加行和列

jquery - 将带有链接的按钮分组

javascript - 在 JS 中移动元素

Javascript 如果单击特定键,我如何每 5 秒检查一次?

javascript - 正则表达式不允许

javascript - 触发 DOM 元素事件时的事件顺序