Yii2 Ajax提交无效

时间:2016-03-03 06:04:22

标签: javascript jquery ajax yii2

我是Yii2和Ajax的新手

我想为作品添加多个作业,因为我将id传递给WorkJobs控制器

这是我提交的ajax代码

<?php

$this->registerJs(
'$("body").on("beforeSubmit", "form#w1", function() {

    var form = $(this);
    if (form.find(".has-error").length) {
      return false;
    }

    $.ajax({
      var jobid =  "<?php echo $id;?>";

      url: form.attr("work-jobs/create&id="+jobid),
      type: "post",
      data: form.serialize(),
      success: function(errors) {
        alert("sdfsdf");
        // How to update form with error messages?
      }
    });

    return false;
    });'
);
 ?>

但是它没有用,我不知道我的代码中有什么问题,请帮助...........

3 个答案:

答案 0 :(得分:2)

更改您的代码,如下所示

<?php
$url=Yii::$app->urlManager->createUrl(['work-jobs/create','id'=>$id]);
$this->registerJs(
'$("body").on("beforeSubmit", "form#w1", function() {

    var form = $(this);

    if (form.find(".has-error").length) {
      return false;
    }

    $.ajax({


      url: "$url",
      type: "post",
      data: form.serialize(),
      success: function(errors) {
        alert("sdfsdf");
        // How to update form with error messages?
      }
    });

    return false;
    });'
);
 ?>

答案 1 :(得分:0)

尝试在createAbsoluteUrl()中使用url,如下所示:

url: "<?php echo Yii::app()->createAbsoluteUrl(\"work-jobs/create&id=\")"+jobid

答案 2 :(得分:0)

建立jithin's answer,对$.ajax()电话

进行以下更改
  • 确保您的网址在引号中。忘记在用PHP散布它时引用URL是一个常见的错误。 [jithin]

jithin's answer不同,您应该执行以下操作

  • 而不是回复beforeSubmit事件,处理submit事件。这将允许Yii clientsoide验证完成其工作
  • ajax.success回调以data为参数;不是error,而是ajax.failure错误回调