2016-07-14 17 views
1

Ich versuche, mehrere Werte in die Todo-Eingabe des Formulars einzufügen. Wenn ich jedoch keinen Wert für eine Eingabe eingabe, wird der Nullwert in die Datenbank eingefügt. Das ist mein Controller-Aktion:Keine Nullwerte einfügen

public function actionAdd() 
{  
    if (Yii::$app->request->isAjax) { 
     $request = Yii::$app->request; 
     $add = new Project(); 
     $add->project_name = $request->post('project'); 
     $add->deadline = $request->post('deadline'); 
     $add->profile_id = $request->post('profile_id'); 
     $add->project_status = "Running"; 
     $add->save(); 
     $getlast = Yii::$app->db->getLastInsertId(); 
     $todo = $request->post('todo'); 

     if (isset($todo)) { 
      foreach ($todo as $to) { 
       $add = new Todo(); 
       $add->todo_name=$to; 
       $add->status="Running"; 
       $add->project_id=$getlast; 
       $add->save(); 
      } 
     } 
     echo json_encode(TRUE); die; 
    } 
    echo json_encode(FALSE);die; 
} 

die Form ist:

<form class="formclass" method="POST" action="<?php echo Yii::$app->request->baseUrl;?>/todo/add/" role="form" id="register-form" novalidate="novalidate"> 

        <label> Project Name: </label>  <input type="name" name="project" class="form-control" placeholder="Project Name" required><br><br> 
        <input type="hidden" name="profile_id" value="<?php echo $profile_id;?>"> 
        <label> Todo: </label><br> 
        <textarea type="text" name="todo[]" placeholder="Todo Description..."></textarea> 
        <div id="dynamicInput"> 
        <span class="glyphicon glyphicon-plus" onClick="addInput('dynamicInput');"></span> 
        </div><br> 
        <label> Project Deadline:</label><br> 
        <input type="date" name="deadline"><br><br> 
        <button type="submit" class="btn btn-default">Add Project</button><BR><BR>      
     </form> 

Und die jquery ist:

var counter = 1; 
var limit = 10; 
function addInput(divName) 
{ 
    if (counter != limit) 
    { 
      var newdiv = document.createElement('div'); 
      newdiv.innerHTML = "<br><textarea type='text' name='todo[]' placeholder='Todo Description...'></textarea>"; 
      document.getElementById(divName).appendChild(newdiv);  
      counter++;  
    } 
} 
+1

, was ist das Problem? –

+0

@RafaelShkembi Wenn ich keinen Wert eingegeben habe, wird null eingefügt. –

+0

so funktioniert es. Wenn Sie keine Daten veröffentlichen, ist der Standardwert null. Posten Sie auch Ihr PHP-Formular, um einen Blick auf –

Antwort

0

Könnte Sie Problem mit den Validierungsregeln zusammenhängt ..

für überprüfen Sie dies und nur zum Debuggen versuchen Sie $ add-> savel (false)

  $add = new Todo(); 
      $add->todo_name=$to; 
      $add->status="Running"; 
      $add->project_id=$getlast; 
      $add->save(false); 

in diesem Fall, wenn die Zeilen die Prüfung für Validierungen Regel eingefügt werden (eventuell temporärer Kommentar) .. für findet die falschen Regeln oder Bedingung