Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Update dynamique... [ Archives / AU SECOURS !!! ] (angeldu74)

mardi 28 juin 2005 à 16:19:46 | Update dynamique...

angeldu74

Slt. voila le problème j'ai un menu déroulant sur la quantité et l'utilisateur a le choix entre 0,1,2 ou 3, je souhaiterai créé une fonction pour que dès qu'il ait choisi une quantité, la valeur de cette case soit enregistré dans ma base grâce à la fonction update...
ex: produit 1, l'utilisateur choisi la quantité 2, update produit1 set qte produit1= valeur1 where numprod=1...

Voila. Ma page est un formulaire qui calcul le montant de chaque ligne pour chaque produit et à la fin il y a le calcul du montant total...
Pourriez vous m'aider à intégrer cette manipulation dans mon code?
Merci d'avance... Wink 

menu déroulant qte:
Code:
<select select style="WIDTH: 100%" onChange=setMontant(<?php echo $totalRows_RqTour ?>);
      name=qte<?php echo $totalRows_RqTour ?>>
            <option value="0">0</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
          </select>

mes fonctions javascript:
Code:
function calcul() {
   for (i=1; i<1+<?php echo ($totalRows_RqTour + $totalRows_RqTour2 + $totalRows_RqTour3 + $totalRows_RqLecteur + $totalRows_RqLecteur2 + $totalRows_RqLecteur3 + $totalRows_RqGraveur + $totalRows_RqGraveur2 + $totalRows_RqGraveur3 + $totalRows_RqDisquette + $totalRows_RqDisquette2 + $totalRows_RqDisquette3 + $totalRows_RqDisqueDur + $totalRows_RqDisqueDur2 + $totalRows_RqDisqueDur3 + $totalRows_RqCarteMere + $totalRows_RqCarteMere2 + $totalRows_RqCarteMere3 + $totalRows_RqProcesseur + $totalRows_RqProcesseur2 + $totalRows_RqProcesseur3 + $totalRows_RqMemoire + $totalRows_RqMemoire2 + $totalRows_RqMemoire3 + $totalRows_RqCarteVideo + $totalRows_RqCarteVideo2 + $totalRows_RqCarteVideo3 + $totalRows_RqCarteReseau + $totalRows_RqCarteReseau2 + $totalRows_RqCarteReseau3 + $totalRows_RqCarteAcquisition + $totalRows_RqCarteAcquisition2 + $totalRows_RqCarteAcquisition3 + $totalRows_RqCarteSon + $totalRows_RqCarteSon2 + $totalRows_RqCarteSon3 + $totalRows_RqCarteSCSI + $totalRows_RqCarteSCSI2 + $totalRows_RqCarteSCSI3 + $totalRows_RqEcran + $totalRows_RqEcran2 + $totalRows_RqEcran3 + $totalRows_RqKitClavierSouris + $totalRows_RqKitClavierSouris2 + $totalRows_RqKitClavierSouris3 + $totalRows_RqScanner + $totalRows_RqScanner2 + $totalRows_RqScanner3 + $totalRows_RqImprimante + $totalRows_RqImprimante2 + $totalRows_RqImprimante3 + $totalRows_RqWebcam + $totalRows_RqWebcam2 + $totalRows_RqWebcam3) ?>; i++) { setMontant(i); }
   setTotal();
}

function setTotal() {
   var total=0;
   for (i=1; i<1+<?php echo ($totalRows_RqTour + $totalRows_RqTour2 + $totalRows_RqTour3 + $totalRows_RqLecteur + $totalRows_RqLecteur2 + $totalRows_RqLecteur3 + $totalRows_RqGraveur + $totalRows_RqGraveur2 + $totalRows_RqGraveur3 + $totalRows_RqDisquette + $totalRows_RqDisquette2 + $totalRows_RqDisquette3 + $totalRows_RqDisqueDur + $totalRows_RqDisqueDur2 + $totalRows_RqDisqueDur3 + $totalRows_RqCarteMere + $totalRows_RqCarteMere2 + $totalRows_RqCarteMere3 + $totalRows_RqProcesseur + $totalRows_RqProcesseur2 + $totalRows_RqProcesseur3 + $totalRows_RqMemoire + $totalRows_RqMemoire2 + $totalRows_RqMemoire3 + $totalRows_RqCarteVideo + $totalRows_RqCarteVideo2 + $totalRows_RqCarteVideo3 + $totalRows_RqCarteReseau + $totalRows_RqCarteReseau2 + $totalRows_RqCarteReseau3 + $totalRows_RqCarteAcquisition + $totalRows_RqCarteAcquisition2 + $totalRows_RqCarteAcquisition3 + $totalRows_RqCarteSon + $totalRows_RqCarteSon2 + $totalRows_RqCarteSon3 + $totalRows_RqCarteSCSI + $totalRows_RqCarteSCSI2 + $totalRows_RqCarteSCSI3 + $totalRows_RqEcran + $totalRows_RqEcran2 + $totalRows_RqEcran3 + $totalRows_RqKitClavierSouris + $totalRows_RqKitClavierSouris2 + $totalRows_RqKitClavierSouris3 + $totalRows_RqScanner + $totalRows_RqScanner2 + $totalRows_RqScanner3 + $totalRows_RqImprimante + $totalRows_RqImprimante2 + $totalRows_RqImprimante3 + $totalRows_RqWebcam + $totalRows_RqWebcam2 + $totalRows_RqWebcam3) ?>; i++) { total+=getMontant(i); }
   setText("total", total);
}

function setMontant(numLigne) {
   
   var qte=getNombre(getInputText("qte"+numLigne));
   var pu=getNombre(getSelect("pu"+numLigne));
   setText("mtt"+numLigne, qte*pu);
}

function getMontant(numLigne) {
   return getNombre(document.getElementById("mtt"+numLigne).innerHTML);
}

mardi 28 juin 2005 à 19:21:16 | Re : Update dynamique...

vince1415

Salut,
En fait si j'ai bien compris ce que tu veut c'est faire des requétes sur ta base de données sans changer ni réactualiser la page. A ce moment la il faut que tu te tourne vers une méthode de programmation qui s'appelle l'ajax je crois. C'est avec du javascript et du php. Ca utilise la méthode HTTPREQUEST ou qqchose comme ca il me semble.

bonne continuation


mercredi 29 juin 2005 à 08:23:30 | Re : Update dynamique...

angeldu74

Oui c'est quelquechose comme ça qu'il me faut. Mais ou puis-je trouver cette méthode ou une autre tout aussi adapté stp???
Merci d'avance...
@+

mercredi 29 juin 2005 à 08:41:55 | Re : Update dynamique...

malalam

Administrateur CodeS-SourceS
Les requetes XMLHTTP, plus exactement ;-)

http://www.toutjavascript.com/savoir/xmlhttprequest.php3




mercredi 29 juin 2005 à 09:27:56 | Re : Update dynamique...

angeldu74

Yes ok merci... J'ai bien compris le concept et c'est exactement ce qu'il me faut...
Malheureusement je n'arrive pas à m'inscrire sur le forum... Et j'aimerai savoir ou je peux trouver quelqu'un qui puisse m'aider à réaliser ma manipulation...
Merci d'avance, t'as assuré...
@+

mercredi 29 juin 2005 à 09:47:05 | Re : Update dynamique...

malalam

Administrateur CodeS-SourceS

C'est TRES simple...
Je te donne un exemple tres rapide.

disons que tu as ton formulaire avec une liste, dans une page form.php :

<form id="idForm" action="?" method="post">
<select name="testSelect" onchange="searchReq('idForm', 'data='+document.GetElementById('idForm').testSelect.value);">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>

Dans un fichier de scripts js inclus dans celui-ci, tu declares ton objet comme indique sur le site (copier coller...) et tu crees ta fonction searchReq () :
if(document.all) {
 // Internet Explorer
 var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}
else {
 // Mozilla
 var XhrObj = new XMLHttpRequest();
}

function searchReq (loc, data) {
 // définition de l'endroit d'affichage:
 var content = document.getElementById(loc);
 
 XhrObj.open("POST", 'requete.php');

 // Ok pour la page cible
 XhrObj.onreadystatechange = function() {
  if (XhrObj.readyState == 4 && XhrObj.status == 200)
   content.innerHTML = XhrObj.responseText ;
 }

 XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 XhrObj.send(data);
}

Puis dans la page quz'appelle cette fonction (requete.php) :

<?php
if (isset ($_POST['data'])) {
 echo 'select name="produits">';
 $requete = "SELECT id, nom FROM produits WHERE id='$_POST['data']'";
 while ($resultat = mysql_fetch_array ($requete)) {
  echo '<option value="',$requete['id'],'">',$requete['nom'],'</option>';
 }
 echo '</select>';
}
?>


Ca ne fonctionnera comme ca que sur Firefox, pas sur IE. IE ne semble pas comprendre qu'un <form> est un block...si tu veux que ca fonctionne sur IE:
- tu dois inserer un div dans ton formulaire apres ton select, et le fermer aussitot, et lui donner un id :
</select>
<div id="idDiv"></div>
</form>

Puis dans le onchange, a l'appel de la fonction tu envoies l'id de ce div :
onchange="searchReq('idDiv', 'data='+document.GetElementById('idForm').testSelect.value);"

C'est tout.

Ca te fait 3 pages, et pas tres grosses... :-)



mercredi 29 juin 2005 à 09:48:26 | Re : Update dynamique...

malalam

Administrateur CodeS-SourceS
J'ai oublie d'echapper les quote dans le onchange...
onchange="searchReq('idDiv', 'data='+document.GetElementById(\'idForm\').testSelect.value);"

mercredi 29 juin 2005 à 09:59:57 | Re : Update dynamique...

angeldu74

Ok d'accord j'ai compris mais je crois qu'il y a un ptit problème car  dans mon onchange de mon menu déroulant il y déja le calcul du montant en fin de ligne comment faire pour faire les 2 en même temps? Merci...

mercredi 29 juin 2005 à 10:07:20 | Re : Update dynamique...

malalam

Administrateur CodeS-SourceS
Tu peux mettre 2 fonctions dans un onchange.

mercredi 29 juin 2005 à 10:15:24 | Re : Update dynamique..

angeldu74

Ok excuses moi je ne voudrais vraiment pas abusé de ton temps mais tu pourrais me dire comment pour mettre les 2 fonctions dans le onchange. Et le code que tu as mis sert à quoi exactement? dès que je vais faire mon choix dans mon menu déroulant les informations vont s'afficher sur une autre page c'est ça? Car au départ je voulais en fait enregistrer la valeur de mon menu déroulant dans ma base de donnée pour ensuite reprendre les données et les envoyer avec une fonction mail.

Mais comme apparemment tu as l'air d'être super fort en la matière tu me pourrais me conseiller et m'aider à réaliser cette manipulation car je galère depuis pas mal de temps...
Merci d'avance...


1 2

Cette discussion est classé dans : function, total, update, numligne, qte


Répondre à ce message

Sujets en rapport avec ce message

balise div et select [ par yop59 ] bonjour j'ai un gros souci,, cea fait 2jours que j'essai dans une table de type div contenant un article, un qte de modifier la qte avec un select et Formulaire update [ par zakarum ] Bonjour,J'ai fait un formulaire update avec un bouton submit, lorsque je clique dessus la mise à jour se fait correctement dans ma table. Comment fair problème utilisation UPDATE avec $_POST [ par hobbes64 ] bonjour, je suis entrain de développer un logiciel de helpdesk, je programme en php depuis presque 2 semaines, et pourtant, je bloque sur des problème Différence ente protected function, public function, private function et function [ par dvdstory ] Bonjour à tous.Je n'arrive pas a trouver la différence entre "protected function" , "public <font color=" function_exists mais dans une classe [ par cedriclomb ] Bonjour,je cherche une fonction pour tester si une fonction existe mais dans une class exempleif(function_in_class($this->{$act}->getPage()){     retu afficher la duree total a la fin de chaque date [ par younes371 ] Bonjour,j ai un pti souci avec l afichage des resultats d une requette :voilà ce que je ve faire :je veux lorsque j affiche les date à la fin de chaqu Besoin d'analyse critique [ par zzzzzz ] Yop,J'aurai besoin d'avis critique concernant une classe de connection mysql. Eventuel bugs/failles et idées pour la développer d'avantage.Voici la cl update ne fonctionne pas dans la page php alors qu'elle s'execute normalement sur phpmyadmin [ par hajeur_abd ] bonsoir,j'ai une table que je veux appliquer sur laquelle une modification et voici mon code:mysql_connect("localhost","root","") or die("impossible d probleme d'array (panier) [ par lyoan ] Bonjour à tous, Je viens de commencer la création d'un panier et j'avoue rencontrer quelques problèmes. Voici mon code, dites moi si vous voyez des ch Bug dans la fonction get_defined_function( ) [ par Calak ] Bonjour Hier, en regardant le résultat d'un get_defined_function() de ma config, je suis tombé sur un truc assez bizard: Est-ce normal, lorsque je fai


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.