Bonjour les amis.es
J'aurai besoin de votre aide concnernant l'envoie de données saisie depuis le formulaire html vers ma bdd sql.
Le calcul s'éffectue correctement sur le formulaire. Mais quand je valide, seulement le champs quantité et prix unitaire qui arrive dans la bdd. Les champs calculés par ligne ne s'enregistrent pas.
En revanche, quand je saisie manuellement les données sur les mêmes champs calculés, les données arrivent correctement dans la bdd. Je ne sais pas pourquoi les champs calculés automatiquement n'arrivent pas dans la base. Certainement, un petit truc à corriger mais il faut quelqu'un qui voit mieux que moi. Hiiiii
<table class="table table-bordered">
<thead class="table-success">
<tr>
<th>Quantité</th>
<th>PU</th>
<th>Prix net</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name ="ligne_une_quantite"onkeyup="quantitefunc(this)"></td>
<td><input type="text" name="ligne_une_prixunitaire" onkeyup= "prixfunc(this)"> </td>
<td input name="ligne_une_prixtotal"class ="prixnet"input type="text" class="" > 0</td>
</tr>
<tr>
<td><input name ="ligne_deux_quantite" type="text" onkeyup="quantitefunc(this)"></td>
<td><input name="ligne_deux_prixunitaire" type="text" onkeyup= "prixfunc(this)"> </td>
<td class ="prixnet"input type="text" class="" name="ligne_deux_prixtotal"> 0</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2">Total</td>
<td id="total"input type="text" class="" name="totalnet">0</td>
</tr>
</tfoot>
<script>
var total = document.getElementById("total");
var netap = document.getElementsByClassName("prixnet");
function quantitefunc(q){
var prix = q.parentElement.parentElement.children[1].children[0].value;
q.parentElement.parentElement.children[2].innerHTML = q.value*prix;
var cal = 0;
for (let i =0; i<netap.length; i++){
cal += parseInt(netap[i].innerText); /* ou cal + netap[i].innerText; */
}
total.innerHTML=cal;
}
function prixfunc(p){
var qte = p.parentElement.parentElement.children[0].children[0].value;
p.parentElement.parentElement.children[2].innerHTML = p.value*qte;
var cal = 0;
for (let i =0; i<netap.length; i++){
cal += parseInt(netap[i].innerText); /* ou cal + netap[i].innerText; */
}
total.innerHTML=cal;
}
</script>
</table>
<button type="submit" class="btn btn-primary">Save</button>
Ce que je veux
Que les champs calculés s'enregistrent dans la base
Ce que j'obtiens
Seuelement les champs quantités et prixunitaires qui arrivent dans la base
Utilise l'inspecteur de ton navigateur (onglet réseau) pour voir quand la requête part les données qui sont envoyées au serveur.
Sur inspecteur, ca a l'air de fonctrionner correctement. Tout est en vert. Je ne vois rien en rouge ou qui soit bloqué. Mais bizarremnent dans la base, seulement les champs siaisis arrivent et non les champs calculés.
Et si tu regarde le corps de la requête tu vois tous les champs (même ceux calculés par ligne ?)