如何使用$ .post()发送请求并在yii2中向数据库添加数据

I would like to achieve something like these below code. just that the code is making a request from the database, i want to send request to the database

$.post( "/trobay/categories/default/lists?parent_id="+$(this).val(), function( data ) {

how to send request adding attribute name and attribute value to be save in DB below is my code i have already

    <?php
  $script = <<< JS
  $(document).ready(function(){
    //setup before functions
         var typingTimer;                
         var doneTypingInterval = 3000;  
         var \$TitleInput = $('#product-product_title');

         //on keyup, start the countdown

        \$TitleInput.on('keyup input change paste',function(){
            clearTimeout(typingTimer);
            if (\$TitleInput.val()) {
                typingTimer = setTimeout(doneTyping, doneTypingInterval);
            }
        });



         //user is "finished typing," do something
         function doneTyping () {

             data = \$TitleInput.val();

                 $.ajax({
        url: '/trobay/draft/create',
        type: 'POST',
        data: data,
        success: function (data) {
                      alert(data)
            },
            error: function(jqXHR, errMsg) {
             // handle error
                alert(errMsg);
            }
        });


         }

  });
 JS;
 $this->registerJs($script);
 ?>

in my controller i have this

public function actionCreate()
{
    $model = new Draft();

    if ($model->load(Yii::$app->request->post())) {
        $model->created_at = \time();
        if($model->save()){
            return draftId;
        }else{
            return '0';
        }

    } else {
        return $this->render('create', [
            'model' => $model,
        ]);
    }
}

and in my view i have this

<?php $form = ActiveForm::begin(['id'=>$model->formName(),
                                          'enableClientValidation'=> true,
                                          'fieldConfig' => ['template' => '{label}{input}{hint}']]); ?>
        <div class="row">
           <div class="col-md-12">
              <?= $form->field($model, 'product_title')->textInput([
                'class'=>'title-input',
                'placeholder' => 'Give us a title for your items(include size,brand,color,material. e.t.c)',
                ])->label(false) ?>
    </div>
            <div class="col-md-12 text-muted">
      E.g Men's blue addidas glide running shoes size 11 
    </div>
        </div>
    <?= $form->field($model, 'user_id')->textInput() ?>

<?= $form->field($model, 'product_title')->textInput(['maxlength' => true]) ?>

<?= $form->field($model, 'product_name')->textInput(['maxlength' => true]) ?>

<?= $form->field($model, 'product_description')->textarea(['rows' => 6]) ?>

<?= $form->field($model, 'category_id')->textInput() ?>

Now my question is I just want to grab the value of each field input and send it to server side for save in the DB without having to submit the whole form The about JS code works enough to get the value but how do i send this to the server for save up

查看全部
duandiaoqian5795
duandiaoqian5795
2016/06/28 05:55
  • yii2
  • php
  • javascript
  • jquery
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

1个回复