2016-03-25 14 views
2

habe ich eine Tabelle, um diese Art von Informationen enthalten enter image description hereSenden von Daten mit Ajax von Knockout js Array

Ich Knockout js und setzen alle Daten auf einem Array und legt es auf dieser Tabelle wie folgt aus.

self.allchildrendata = ko.observableArray(); 
self.viewAllUserChildrenCard = function() { 

      $.ajax({ 
       type: 'POST', 
       url: BASEURL + '/index.php/main/childrenCardInfo', 
       contentType: 'application/json; charset=utf-8', 
       dataType :'json' 
      }) 
      .done(function(childrencards) { 
       self.allchildrendata.removeAll(); 
       $.each(childrencards, function (index, childrencard) { 
       self.allchildrendata.push(childrencard); 
       console.log(self.allchildrendata()); 
       }); 
      }) 
      .fail(function(xhr, status, error) { 
       alert(status); 
      }) 
      .always(function(data){     
      }); 
     }; 
     self.viewAllUserChildrenCard(); 

Also das nächste Ich möchte das Hinzufügen klicken Geld Schaltfläche für rebecca und wollen nur die orig-ID von rebecca senden, so kann ich sie nutzen sie in der Datenbank zu finden und Geld hinzuzufügen, aber ich bin nicht sicher, ob auf wie man die orig_id sendet, habe ich diesen Weg versucht.

self.giveCashtoChild = function(){ 
      $.ajax({ 
       type: 'POST', 
       url: BASEURL + '/index.php/main/addUserChildrenCash' + "/" + self.allchildrendata().orig_id , 
       contentType: 'application/json; charset=utf-8' 
      }) 
      .done(function() { 

      }) 
      .fail(function(xhr, status, error) { 
       alert(status); 
      }) 
      .always(function(data){     
      }); 
     } 

Hier ist der HTML-Code, wo ich auf jedem der Taste einen databind habe, damit ich die orig-ID senden.

<tbody data-bind="foreach: allchildrendata"> 
        <tr> 
        <td class="text-center"><span data-bind="text : $data.children_name"></span></td> 
        <td class="text-center"><span data-bind="text : $data.daugther_son"></span></td> 
        <td class="text-center"><span data-bind="text : $data.amount"></span> $</td> 
        <td class="text-center"><a href="#" data-bind="click : $root.giveCashtoChild"><span class=" glyphicon glyphicon-send"></span></a></td> 
        <td class="text-center"><a href="<?php echo base_url(); ?>index.php/main/takeAway"><span class=" glyphicon glyphicon-trash"></span></a></td> 
        </tr> 
      </tbody> 

Also im Grunde brauche ich Hilfe zu identifizieren, welche Familie memeber ich klicken und senden, die Familie memebers

orig_id

Antwort

1

Jedes Mal, wenn Sie eine click Bindung verwenden, Knockout übergibt den aktuellen verbindlichen data und event.

Also in Ihrem HTML:

<a href="#" data-bind="click : $root.giveCashtoChild"> 

Es ruft giveCashToChild mit zwei Argumenten. Ihre giveCashToChild Methode sollte also zwei Argumente akzeptieren, von denen das erste das Kind sein wird, um Bargeld zu geben.

self.giveCashtoChild = function(data, event) { 
    var currentChildId = data.orig_id; 
    // the other stuff.. 
}; 
+0

Versuchte es, nicht funktioniert hat, ich gepostet eine andere Frage ähnlich wie diese, wo ich es wie 90% festgelegt, aber Ajax-Anforderung wird nicht ... Bitte, check it out http://stackoverflow.com/questions/36221510/ajax-function-not-go-zu-php-codeigniter-controller – FaF

+0

Ersetzen Sie auch 'self.allchildrendata(). orig_id' durch' currentChildId'? – user3297291

+0

yup hat nicht funktioniert – FaF

Verwandte Themen