2014-09-15 5 views
0

J'essaye de créer un formulaire de facture, qui peut faire tous les calculs nécessaires comme sous-total, taxe totale par elle-même. Si vous cliquez sur le bouton submit, vous devez soumettre toutes les valeurs et les éléments créés dynamiquement à une page PHP, qui insérera ces valeurs (écrites par l'utilisateur ou calculées par angularjs) dans la table/colonne SQL appropriée comme je le souhaite. Sur cette base project, j'ai ajouté ce code javascript.Soumettre une entrée dynamiquement créée de Angular à PHP Page

function PhpCtrl($scope, $http, $templateCache) { 
var method = 'POST'; 
var url = 'added.php'; 
$scope.codeStatus = ""; 
$scope.add = function() { 
var FormData = {}; 
$http({ 
    method: method, 
    url: url, 
    data: FormData, 
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
    cache: $templateCache 
}). 
success(function(response) { 
    $scope.codeStatus = response.data; 
}). 
error(function(response) { 
    $scope.codeStatus = response || "Request failed"; 
}); 
return false; 
}; 
} 

Quelqu'un peut me aider comment stocker tous les éléments créés dynamiquement, ainsi que leurs valeurs, afin de les soumettre à une page php?

+0

Il suffit d'utiliser 'var FormData = $ ('# formId '). serialize() '. J'espère que tous les "éléments créés dynamiquement" que vous voulez ajouter seront ajoutés en tant qu'éléments HTML à l'intérieur de la balise "

". Si vous avez des variables qui ne sont pas dans '', ajoutez-les à la variable comme 'FormData + = '& newValue = 123 & otherVal = kitty';'. – cackharot

+0

Vous pouvez utiliser l'objet 'FormData' pour créer les objets que vous souhaitez soumettre au serveur. Mais ici, vous soumettez un formulaire vide. – Peter

+0

Bonjour cackharot, malheureusement votre solution ne fonctionne pas, Chrome/IE 11 ne peut même pas voir les variables lorsque je clique sur le bouton Soumettre. En ce qui concerne les "articles créés dynamiquement", veuillez consulter la page [link] (https://github.com/metaware/angular-invoicing/blob/master/index.html), lignes 78 à 85. J'utilise ce projet pour créer mon formulaire de facture, donc la logique est à peu près la même. – marksf

Répondre

0

Vous pouvez créer un FormData à soumettre dynamiquement en utilisant javascript simple comme ceci:

var fd = new FormData(); 

fd.append("fieldName", valueToSubmit); 
fd.append("arrayField[]",[1,2,3]); //you can even post array data 

Le vous pousser fd au serveur:

var uri = "added.php"; 
var xhr = new XMLHttpRequest(); 
xhr.open("POST",uri,true); 
xhr.onreadystatechange=function(){ 
    if(xhr.readyState == 4 && xhr.status==200){ 
     //do something with returned data 
    } 
}; 
fd.append("img_file",blob_to_upload);// you can even upload a file 
fd.append("user_id",data); 
fd.append("category_id",category_id); 
xhr.send(fd); 
Questions connexes