bonjour,

j'ai une fonction ajax qui me permet sur un onKeyUp de verifier si un champs existe deja dans la base. cela marche sauf dans certains cas :

Aimants 25mm rouge (x10) <= il me dit que l'article n'existe pas et que donc en theorie je peux l'ajoute, sauf qu'en fait je l'affiche de la base mais bon

Boite d'agrafes bebe (boite de 1000)<= la il m'affiche directement la requete sql avec une erreure

//fonction qui recupere l'article du formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
	function afficheArticle(){
		var adr=document.getElementById('article2').options[document.getElementById('article2').selectedIndex];
		document.getElementById('modifierArticleNouveauNom').value=adr.text;
		document.getElementById('modifierArticleCodeNomOri').value=adr.value;
		verifchampsAjx(adr.text,'nomarticle','nom de cet article');
	}
fonction ajax
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
24
25
 
function ajx(champs){
	var xhr = getXhr(); 
	xhr.open("GET", champs, false);
	xhr.setRequestHeader('Cache-Control','no-cache');
    xhr.send(null); 
    if(xhr.readyState == 4 ) return(xhr.responseText);
    else return(false);
}
 
	///////////////////////////////////////
	//creation article
	///////////////////////////////////////
		function verifchampsAjx(valeurchamp,adr,ref){
			if(valeurchamp != ''){
				if(texte = ajx('ajax/'+adr+'.php?'+adr+'='+escape(valeurchamp))){
					if(texte == 1)
						ecrire('<span style="color:#cc0000">le '+ref+' de cet article : <b>'+valeurchamp+'</b> est deja pris</span>');
					else if(texte == 2)
						ecrire('<span style="color:#1A7917">le '+ref+' de cet article : <b>'+valeurchamp+'</b>  est libre </b></span>');
					else
						ecrire(texte);
					}
			}
		}
page de traitement
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
 
<?php
include('../verif.php');
//appel du fichier contenant les fonctions et les paramètres de connection de la base.
require('../../classeBD.inc');
 
header("Pragma: no-cache");
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Content-type: application/xml"); 
//Connection à la base
$db = new gestionBD();
$db->connect();
 
// VERIFICATION
$result = $db->sqlSelect("nom",TB_ART,"nom='".$_GET["nomarticle"]."'");
if(mysql_num_rows($result)>=1)
        echo "1";
        else
        echo "2";
$db->disconnect();
?>
on dirait que c'est le ' et x dans le nom de l'article qui le perturbe, non ?

est ce que vous avez une idee de comment je peux resoudre ce probleme ?

meric beaucoup