0

コントローラ:

public function actionCreate() {
    $model = new SiteWidget;
    if (isset($_POST['SiteWidget'])) {
        $model -> attributes = $_POST['SiteWidget'];
        if ($model -> validate()) {
            if ($model -> save())
            {
                return 'OK';
            }       
        }
    }
    $this -> render('create', array('model' => $model, ));
}

見る:

<div class="form">  
    <?php $form=$this->beginWidget('CActiveForm', array(
        'id'=>'site-widget-form',
        'enableAjaxValidation'=>false,
        'htmlOptions'=>array(
                         'onsubmit'=>"return false;",
                         'onkeypress'=>" if(event.keyCode == 13){ send(); } "
                                 ),
    )); ?>

    <p class="note">
        Fields with <span class="required">*</span> are required.
    </p>

    <?php echo $form -> errorSummary($model); ?>

    <div class="row">
        <?php echo $form -> labelEx($model, 'title'); ?>
        <?php echo $form -> textField($model, 'title', array('size' => 60, 'maxlength' => 256)); ?>
        <?php echo $form -> error($model, 'title'); ?>
    </div>

    <div class="row">
        <?php echo $form -> labelEx($model, 'type'); 
            echo $form -> dropDownList($model, 'type',  SiteWidget::getConstants('W_', 'SiteWidget'));
            echo $form -> error($model, 'type'); ?>
    </div>
    <div class="row">
        <?php echo $form -> labelEx($model, 'status'); ?>
        <?php echo $form -> checkBox($model, 'status'); ?>
        <?php echo $form -> error($model, 'status'); ?>
    </div>
    <div class="row buttons">
        <?php echo CHtml::submitButton($model -> isNewRecord ? 'Create' : 'Save',array('onclick'=>'send();')); ?>
    </div>
    <?php $this -> endWidget(); ?>
</div>

<script language="JavaScript">
function send(){
    var data=$("#site-widget-form").serialize();

      $.ajax({
           type: 'POST',
            url: '<?php echo Yii::app()->createAbsoluteUrl("siteWidget/create"); ?>',
            data:data,
            success:function(data){
                        alert(data);
                      },
           error: function(data) {
                 alert("Error occured.please try again");
            },
          dataType:'html'
      });
}
</script>

なぜ ajax は機能しないのですか? どこで間違えますか?

4

3 に答える 3

-1

データは JavaScript オブジェクトである必要があります。おそらく serialize() で問題が発生しますか? これがjQueryです-実際の例を含むAJAXの記事:)

于 2012-12-22T12:32:34.447 に答える
-1

Yii ajaxSubmitButton を使用してみてください

于 2013-11-06T08:34:08.403 に答える