cs_couicoui
Messages postés7Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention16 octobre 2006
-
9 oct. 2006 à 15:54
cs_couicoui
Messages postés7Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention16 octobre 2006
-
16 oct. 2006 à 09:23
Bonjour,
Je développe un site et j'utilise un XMLhttpRequest pour aller mettre à jour une table de ma base de données.
Dans ma fonction javascript qui appelle mon script php, j'ai mis un alert() pour vérifier que mes paramètres soient corrects.
Mon problème c'est que quand il y a le "alert()" tout ce passe bien et
les mises à jour ce font bien, par contre quand j'enlève le "alert()",
il y a mon message d'erreur qui s'affiche (Problème grave, prévenir la
maintenance, pas d'ajout de document) (cf code).
if(doc_cat == ""){
alert("Veuillez choisir une catégorie");
return false;
}
// Création de la chaine de paramètres
chaine = "nom=" + doc_nom + "&aut=" + nom_aut + "&com=" + doc_com + "&typ=" + doc_typ + "&ext=";
break;
case 1:
doc_nom = document.getElementById("nom_doc").value;
doc_com = document.getElementById("doc_com").value;
doc_typ = document.getElementById("type").value;
doc_ext = document.getElementById("ext").value;
doc_cat = document.getElementById("cat").value;
// Contrôle des saisies
if(doc_nom == ""){
alert("Le titre de la demande est obligatoire");
document.getElementById("nom_doc").focus();
return false;
}
if(doc_com == ""){
alert("Veuillez ajouter le texte de votre demande");
document.getElementById("doc_com").focus();
return false;
}
if(doc_ext == ""){
alert("Veuillez sélectionner un type de document");
return false;
}
if(doc_cat == ""){
alert("Veuillez choisir une catégorie");
return false;
}
// Création de la chaine de paramètres
chaine = "nom=" + doc_nom + "&aut=&com=" + doc_com + "&typ=" + doc_typ + "&ext=" + doc_ext;
break;
default:
alert("Gros problème prévenir le support technique");
break;
}
// Récupération des paramètres
var obj;
// Détection du navigateur utilisé
if(window.XMLHttpRequest) // Firefox
obj = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
obj = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
// Définition des paramètres d'envoi
obj.open("POST","MajDocOk.php",true);
// Traitement de la requête
obj.onreadystatechange = function(){
if(obj.readyState == 4){
if(obj.responseText == ""){
alert("Problème grave, prévenir la maintenance, pas d'ajout de document");
}
else{
document.getElementById("Aff").innerHTML = obj.responseText;
}
};
}
// Envoi de la requête
obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
obj.send(chaine);
alert(chaine);
}
cs_couicoui
Messages postés7Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention16 octobre 2006 16 oct. 2006 à 09:23
Salut,
J'ai trouvé la solution, en fait c'est dû à mon formulaire de saisie qui appelle ma fonction javascript.
J'avais laissé le POST dans le form de mon formulaire.
cs_couicoui
Messages postés7Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention16 octobre 2006 11 oct. 2006 à 14:11
Bonjour,
merci mais le problème est toujours là.
J'utilise cette syntaxe pour d'autres fonctions dans le même projet et il n'y a pas d'erreur.
Il semble que ce problème apparaisse quand il y a récupération de données sur la page par un getElementById.
cs_couicoui
Messages postés7Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention16 octobre 2006 12 oct. 2006 à 10:12
Ok j'ai testé et ton alert() n'apparait pas, il faut que j'aille creuser côté php.
Ce que je comprends pas, c'est pourquoi ça marche quand il y a le "alert()"
rubiks10
Messages postés224Date d'inscriptionlundi 19 décembre 2005StatutMembreDernière intervention 6 juin 20073 12 oct. 2006 à 22:11
Salut bon moi j'ai tester tout ton code
et tout marche correctement.... meme sans l'alerte... cependant laisse tout le contenu de ton fichier html pour voir également la ou cela pourait coincer...
mais bon jpense que c'est ton serveur php qui bug car moi tout marche nikel
par contre aussi.... change le "<?" d'entrée du fichier php par "<?php" mais pour le reste... tout est bon
rubiks10
Messages postés224Date d'inscriptionlundi 19 décembre 2005StatutMembreDernière intervention 6 juin 20073 13 oct. 2006 à 17:08
Ok n'oublie pas de me tenir au courant sur l'evolution de ton probleme car je suis un bon connaisseur de ajax et ce probleme m'intrigue.
Ce qui est sur c'est que cela vient du serveur php ( peut être trop lent... ) car le alert() ralentit le tout...
Mais bon je ne vois pas pourquoi cela poserait un probleme car ton serveur t'envoie bien les données si tu mets l'alert.
A la rigueur si tu pouvais mettre ici le code complet de ta page HTML.. car peut être un element pose probleme. Car pour mon test j'ai juste mis un bouton afin de lancer ta fonction.