IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Comparer 2 champs


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut [PHP-JS] Comparer 2 champs
    Bonjour,
    Le titre est semble-t-il assez simple à répondre MAIS, je dois afficher des infos venant d'une base de données et les comparer à celle déjà affichée.

    En fait, j'ai un formulaire dans lequel je dois remplir des champs textes par le biais d'un lecteur code barre, celui-ci me renvoi un code qui rempli un champ texte, j'appuie alors sur TAB pour afficher les informations inhérentes au code barre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input name="scan0" tabindex="1" type="text" class="Champtexte" id="scan0" size="18" maxlength="18" onKeyUp="if(this.value.length !=0) this.form.elements['scan0'].focus();" onChange="checkCodeBarre(this.value,'1')" />
    J'utlise un fichier Script3.php pour aller chercher les infos sur la base. Ceci fonctionne bien.
    Le problème que j'ai c'est de pouvoir comparer les données d'une liste avec celles de la base. En effet, les utilisateurs doivent suivre une liste d'articles à scanner avec des références bien précises, j'aimerais pouvoir les avertir en cas d'erreur de scanne...est-ce clair ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function RefreshTableau(thevalue,thefield) { 
       document.getElementById(thefield).value = thevalue; 
    } 
    function checkCodeBarre(valeur,field) 
    { 
     document.getElementById("IFRAME").src = "script3.php?scan=" + valeur+"&ref="+field; 
    } 
    var avalider;

    Le fichier Script3.php :
    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script language="JavaScript" type="text/JavaScript"> 
    window.parent.document.getElementById('reference<? echo $_GET['ref']; ?>').value = '<? echo str_replace("\r\n","\\r\\n",$row_Recordset1["reference"]); ?>'; 
    window.parent.document.getElementById('designation<? echo $_GET['ref']; ?>').value = '<? echo $row_Recordset1["Designation"]; ?>'; 
    window.parent.document.getElementById('expiration_date<? echo $_GET['ref']; ?>').value = '<? echo $row_Recordset1["Expiration_date"]; ?>';
    Ou est-ce que je peux mettre une fonction pour comparer mes 2 champs références ? Javascript ou en php ???

    MErci

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 417
    Points : 15 786
    Points
    15 786
    Par défaut
    je te conseille de plutot passer par une balise "script" comme dans l'exemple suivant :
    http://javatwist.imingo.net/suggest.php
    dans ta page fixe tu défini par exemple la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fucntion afficheMessage(texte, couleur) {
        // mettre le texte dans un "div" par exemple
    }
    ensuite dans la page PHP que tu appelle dans la balise "script"
    tu gèneres ce code javascript par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    afficheMessage('Erreur de scan', 'red')

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par mathieu
    je te conseille de plutot passer par une balise "script" comme dans l'exemple suivant :
    http://javatwist.imingo.net/suggest.php
    dans ta page fixe tu défini par exemple la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fucntion afficheMessage(texte, couleur) {
        // mettre le texte dans un "div" par exemple
    }
    ensuite dans la page PHP que tu appelle dans la balise "script"
    tu gèneres ce code javascript par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    afficheMessage('Erreur de scan', 'red')
    Merci pour cette réponse, mais j'ai un peu de mal à la mettre en place !
    Surtout en terme de comparaison des 2 champs.

    Merci

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 417
    Points : 15 786
    Points
    15 786
    Par défaut
    Citation Envoyé par Zebulonn
    Merci pour cette réponse, mais j'ai un peu de mal à la mettre en place !
    Surtout en terme de comparaison des 2 champs.
    je n'ai pas compris

    dit nous en détails ce que tu veux afficher si l'information saisie n'est pas dans la base

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par mathieu
    Citation Envoyé par Zebulonn
    Merci pour cette réponse, mais j'ai un peu de mal à la mettre en place !
    Surtout en terme de comparaison des 2 champs.
    je n'ai pas compris

    dit nous en détails ce que tu veux afficher si l'information saisie n'est pas dans la base
    En fait, je ne vois pas comment comparer l'info renvoyé par le fichier script3.php et le champ texte ou il y a la valeur fixe à comparer !
    En gros, j'ai 2 champs dans un formulaire, l'un des champs texte à une valeur fixe, l'autre est rempli par une lecture optique de code barre qui va renvoyé l'info via le script3.php. Est-ce plus clair ?

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 417
    Points : 15 786
    Points
    15 786
    Par défaut
    Citation Envoyé par Zebulonn
    En gros, j'ai 2 champs dans un formulaire, l'un des champs texte à une valeur fixe, l'autre est rempli par une lecture optique de code barre qui va renvoyé l'info via le script3.php. Est-ce plus clair ?
    tu as failli m'embrouiller avec cette histoire de lecteur optique mais je viens de relire ton 1re message et je crois que j'ai compris. En fait tu veux faire ça :
    1) saisi d'un code sur le formulaire
    2) ce code est envoyé au script 'script3.php'
    3) script3.php regarde si le code est dans la base
    4) il se passe une action en fonction que script3 retourne "d'accord" ou "pas d'accord".
    mais tu ne m'a toujours pas répondu : tu veux faire quoi suivant que le code est bon ou pas ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 65
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par mathieu
    Citation Envoyé par Zebulonn
    En gros, j'ai 2 champs dans un formulaire, l'un des champs texte à une valeur fixe, l'autre est rempli par une lecture optique de code barre qui va renvoyé l'info via le script3.php. Est-ce plus clair ?
    tu as failli m'embrouiller avec cette histoire de lecteur optique mais je viens de relire ton 1re message et je crois que j'ai compris. En fait tu veux faire ça :
    1) saisi d'un code sur le formulaire
    2) ce code est envoyé au script 'script3.php'
    3) script3.php regarde si le code est dans la base
    4) il se passe une action en fonction que script3 retourne "d'accord" ou "pas d'accord".
    mais tu ne m'a toujours pas répondu : tu veux faire quoi suivant que le code est bon ou pas ?
    20/20 tu as tout compris !
    Enfin le script regarde dans la base si le code barre existe, si oui, il renvoi les infos relatives à ce code (référence et désignation).
    Je voudrais donc pouvoir avertir les utilisateurs en ouvrant une pop up : Attention, vous n'avez pas saisi la bonne référence ! Un truc dans ce type.

    encore un grand merci

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 417
    Points : 15 786
    Points
    15 786
    Par défaut
    ok donc déjà tu peux garder ton code html pour le champ de texte mais dit moi juste à quoi sert le code dans "onKeyUp"

    ensuite pour la fonction "checkCodeBarre" je te propose ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    	function checkCodeBarre(valeur,field)
    	{
    		chargeScript('scriptVerif', 'script3.php?scan=' + escape(valeur) + '&ref=' + escape(field));
    	}
     
    	/**
    	 * fonction qui appelle un script à une adresse
    	 */
    	function chargeScript(idScript, adresse)
    	{
    		// si la balise de script existe déjà, on l'efface 
    		if (document.getElementById(idScript)){ 
    			document.body.removeChild(document.getElementById(idScript));
    		}
     
    		// création de la balise de script 
    		var scriptContact = document.createElement('script'); 
    		scriptContact.setAttribute('src',adresse ); 
    		scriptContact.setAttribute('id', idScript); 
     
    		// insertion de la balise dans le body
    		document.body.appendChild(scriptContact);
    	}
    donc ce code va appeller le script script3.php qui contient ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
     
    $scan = $_GET['scan'];
    $ref = $_GET['ref'];
     
    // recherche de $scan dans la base de donnée 
    // ....
     
     
    if ($scanEstTrouvéDansLaBase) {
    	?>
    		validerScan();
    	<?php
    } else {
    	?>
    		erreurScan();
    	<?php
    }
    les 2 fonctions javascript "validerScan" et "erreurScan" seront aussi dans ta page et avec tes fonctions tu peux faire ce que tu veux en javascript sur ton formulaire
    ainsi tu fait circuler le minimum di'nformation et donc cette méthode est la plus rapide

    attention n'oublie pas de prévoir le cas où le javascript est désactivé

Discussions similaires

  1. Comparer des champs
    Par nicoreims dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/06/2006, 21h22
  2. [PHP-JS] Bouton radio & champ masqué
    Par eown dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2006, 10h06
  3. Réponses: 1
    Dernier message: 16/01/2006, 17h36
  4. [PHP-JS] Trier des champs dynamiques
    Par Mehdi Feki dans le forum Langage
    Réponses: 8
    Dernier message: 22/12/2005, 23h39
  5. comparer des champs date time
    Par HULK dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/01/2005, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo