2016-08-31 2 views
0

Ich möchte Daten in zwei Tabellen speichern. Das verwendete Formular ist eine Ajax-Form mit Ajax-Anfrage.Daten im AJAX-Format speichern yii2

Ich möchte zwei Werte 'Task_ID' und 'Employee_ID' aus dem Formular abrufen und dann in einer anderen Tabelle speichern.

-Controller-Code ist unter

public function actionCreate() 
{ 
    $request = Yii::$app->request; 
    $model = new Activity(); 
    $empModel = new Tasksemp(); 
    //$tasksModel = new Tasks(); 

    if($request->isAjax){ 
     /* 
     * Process for ajax request 
     */ 
     Yii::$app->response->format = Response::FORMAT_JSON; 
     if($request->isGet){ 



      return [ 
       'title'=> "Create new Activity", 
       'content'=>$this->renderAjax('create', [ 

        'model' => $model, 

        $model->finish_date = date('y-m-d'), //give default date as current along with date picker option 

        $empModel->Task_ID = $model->Task_ID, //<----Error here. The value of Task_ID and Employee_ID is null. 
        $empModel->Employee_ID = $model->Employee_ID, 
        $empModel->save(false), 

       ]), 
       'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]). 
          Html::button('Save',['class'=>'btn btn-primary','type'=>"submit"]) 

      ]; 





     }else if($model->load($request->post()) && $model->save()){ 
      return [ 
       'forceReload'=>'#crud-datatable-pjax', 
       'title'=> "Create new Activity", 
       'content'=>'<span class="text-success">Create Activity success</span>', 
       'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]). 
         Html::a('Create More',['create'],['class'=>'btn btn-primary','role'=>'modal-remote']) 

      ];   
     }else{   
      return [ 
       'title'=> "Create new Activity", 
       'content'=>$this->renderAjax('create', [ 
        'model' => $model, 
        'empModel' => $empModel, 
       ]), 
       'footer'=> Html::button('Close',['class'=>'btn btn-default pull-left','data-dismiss'=>"modal"]). 
          Html::button('Save',['class'=>'btn btn-primary','type'=>"submit"]) 

      ];   
     }   
    }else{ 
     /* 
     * Process for non-ajax request 
     */ 
     if ($model->load($request->post()) && $model->save()) { 
      return $this->redirect(['view', 'id' => $model->Activity_ID]); 
     } else { 
      return $this->render('create', [ 
       'model' => $model, 
      ]); 
     } 
    } 

} 

Ich brauche die beiden Werte zu erhalten, nachdem das Ajax-Formular oder irgendwie Weise gespeichert wurde, kann ich die Werte erhalten und in der Ajax-Form speichern?

Jede Hilfe wäre willkommen! Danke

+0

'$ modell-> Task_ID' und' $ modell-> Employee_ID' null sind, weil bis zu dieser Linie '$ Modell 'ist leer. Sie haben gerade das leere Modell _ ($ model = new Activity();) _ erstellt und keinen Wert gesetzt! Ich habe die 'zwei Werte 'Task_ID' und 'Employee_ID' aus dem Formularteil nicht verstanden. Wo willst du sie haben ?? – leninhasda

+0

Ok. Ich möchte die Task_ID und Employee_ID aus dem Formular. Wenn der Benutzer versucht, einen neuen Eintrag zu erstellen und auf Senden klickt, möchte ich, dass diese beiden Werte aus dem Formular in $ empModel-> Task_ID und $ empModel-> Employee_ID – user2211486

Antwort

0

Ich denke, Sie haben falschen Code geschrieben. Wird nicht empfohlen (strikt) "=" - Operator und Methoden innerhalb [ ... ] Anweisung ausführen. Dann laden Sie keine Werte zu Activity Modell.

if ($request->isGet){ 

    $model->finish_date = date('y-m-d'); //give default date as current along with date picker option 

    // loading values from form 

    $empModel->Task_ID  = $request->get('name_of_form_input_that_contains_Task_ID'); 
    $empModel->Employee_ID = $request->get('name_of_form_input_that_contains_Employee_ID'); 

    $empModel->save(false); 

    return [ 
     'title' => "Create new Activity", 
     'content' => $this->renderAjax('create', [ 
      'model' => $model, 
      // any other data 
     ]), 
     'footer' => '' // .. 
    ]; 

} 
+0

Ich habe versucht, was Sie vorgeschlagen haben, aber ich bekomme einen Fehler : - "Name": "PHP-Warnung", "Nachricht": "Standardobjekt aus leerem Wert erstellen", "code": 2, "type": "yii \\ base \\ ErrorException" – user2211486

+0

Dies ist kein kompletter Code. Dies ist nur ein Teil Ihres Codes ("if-Anweisung"). – IStranger

+0

Ja, aber ich weise keinem Modell im anderen Teil des Codes mehr Werte zu. Was schlägst du vor, dass ich tun sollte, damit das funktioniert? – user2211486