[RESOLU] Addition de deux variables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Addition de deux variables

Re: Addition de deux variables

par cylvain » 27 oct. 2016, 14:31

Bonjour,

Merci Moogli,

Merci pour vos explications et les liens qui sont très instructifs.
pour les injections SQL, je sais, le programme date d'avant 2013 et il n'est pas sur le web, il tourne en interne avec mamp.

Pour en revenir au souci, déjà merci car effectivement mes deux listes déroulantes avaient le même nom. Pour l'index Id, il y en a un dans mon formulaire voici le code :

Code : Tout sélectionner

$(document).ready(function() { $(".country").change(function() { var id=$(this).val(); var dataString = 'id='+ id; $.ajax ({ type: "POST", url: "ajax_city.php", data: dataString, cache: false, success: function(html) { $(".city").html(html); } }); }); }); </script> <SCRIPT LANGUAGE="JavaScript"> function checkIt(evt) { evt = (evt) ? evt : window.event var charCode = (evt.which) ? evt.which : evt.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)) { status = "This field accepts numbers only." return false } status = "" return true } </SCRIPT>
Mon fichier ajax_city.php est appelé dans plusieurs pages de mon programme

Peut être qu'il serait mieux que j'utilise la requête sql car c'est exactement cela que je veux faire.

En copie d'écran la table de ma BDD
Image

Merci

Re: Addition de deux variables

par moogli » 26 oct. 2016, 13:02

salut,

tes deux listes ont le même nom donc ce n'est pas exploitable
=> <select name="mem_type"
Il faut changer le nom de la seconde liste pour que tu puisses l'utiliser

ton code de validation du formulaire emploi un index id qui suppose qu'il y ait un champ de formulaire qui se nomme id hors ce n'est pas le cas (tu as besoin de mem_type ).

si le but c'est de faire la somme de la colonne rate pour les deux choix tu peux le faire simplement en sql

select sum(rate) as total from mem_types where mem_type_id in ( , , , )

ton code est sensible aux injections SQL. (voir google) utilise au moins mysql_real_escape_string.

L'extension est déconseillées (déprécies) depuis php 5.5 (2013) et supprimée de php 7 il est donc souhaitable de passer à un autre driver (mysqli ou PDO).

il y a un excellent tuto de Ryle sur le passage de mysql à mysli ici : faq-tutoriels/passer-mysql-mysqli-pdo-t276282.html

@+

Addition de deux variables

par cylvain » 25 oct. 2016, 17:38

Bonjour,

J'ai dans un formulaire une liste déroulante qui une fois sélectionné m'affiche le prix, je souhaiterais créer une deuxieme liste déroulante identique à la première avec dans l'affichage de mon tarif l'addition des deux. Pour la liste déroulante pas de soucis mais c'est du côté de l'addition des deux que je rencontre un problème.


Côté formulaire

Code : Tout sélectionner

<div class="control-group"> <label for="textfield" class="control-label1"><h4>Facturer un Produit&nbsp &nbsp</h4></label> <div class="controls"><span id="spryselect2"> <select name="mem_type" id="id" data-rule-required="true" class="country" required> <option value="">Choisir le Produit</option> <?php $query = "select * from mem_types"; //echo $query; $result = mysqli_query($con,$query); if(mysqli_affected_rows($con)!=0){ while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ echo "<option value=" . $row['mem_type_id'].">" . $row['name'] . "</option>"; } } ?> </select> <span class="selectRequiredMsg">Sélectionner un élément</span></span></div> <div class="control-group"> <label for="textfield" class="control-label1"><h4>Facturer un Produit&nbsp &nbsp</h4></label> <div class="controls"><span id="spryselect2"> <select name="mem_type" id="id2" data-rule-required="true" class="country" required> <option value="">Choisir le Produit</option> <?php $query = "select * from mem_types"; //echo $query; $result = mysqli_query($con,$query); if(mysqli_affected_rows($con)!=0){ while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ echo "<option value=" . $row['mem_type_id'].">" . $row['name'] . "</option>"; } } ?> </select> <span class="selectRequiredMsg">Sélectionner un élément</span></span></div>
Côté appel c'est dans se fichier que je ne sais pas

Code : Tout sélectionner

<?php include('db_conn.php'); if($_POST['id']) { $id=$_POST['id']; $query = "select * from mem_types WHERE mem_type_id='$id'"; //echo $query; $result = mysqli_query($con,$query); if(mysqli_affected_rows($con)!=0){ while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){ echo "<h4>Tarif </h4><input type='text' name='total' id='textfield' class='input-small' data-rule-required='true' data-rule-minlength='1'value='".$row['rate']."' maxlength='10'><br><br><p><h4>Paiement</h4> <input type='text' name='paid' id='textfield' class='input-small' data-rule-required='true' data-rule-minlength='1' onKeyPress='return checkIt(event)' maxlength='10'>"; } } } ?>
Merci pour votre aide