Formulaires et Javascript

Résolu/Fermé
Thebuzz Messages postés 41 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 24 octobre 2010 - 3 sept. 2008 à 20:40
Thebuzz Messages postés 41 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 24 octobre 2010 - 16 sept. 2008 à 22:58
Bonjour à toutes et tous,

Grave question pour ma part concernant les formulaires...

J'ai un code Javascript qui m'impose de donner le nom du formulaire "name" alors que je souhaite utiliser ce code dans tous mes formulaires.

Comment pourrais-je faire communiquer le fait que quand je suis sur tel formulaire - exemples de formulaires : contact - ou - commandes - que le code "utilise" le même script.

Mon début de code :
var http = null;
if (window.XMLHttpRequest) // Firefox
http = new XMLHttpRequest();
else if (window.ActiveXObject) // Internet Explorer
http = new ActiveXObject("Microsoft.XMLHTTP");
else // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");


function recup_email(e) {
var sel = document.contact.completion_select ;
var nb_el = sel.options.length ;
var selIndex = sel.selectedIndex ;

if (!document.contact.completion_text.value)
{ sel.style.display = 'none';
}
...

Si je mets le nom exact, en l'occurrence" document.contact.completion_select ;" dans le formulaire "contact", ça fonctionne. Par contre, dans le formulaire commandes, rien ne fonctionne. C'est normal, je sais. En mettant simplement "document.completion_select ;" évidement ça ne fonctionne pas !!!!!!!

Comment faire donc ? Ou comment dire au script que quand il se trouve sur la page formulaire -Contact- alors place contact, si il se trouve sur le formulaire -commandes- alors place commandes !

Simple à dire, mais à faire ?!

Merci de votre aide

3 réponses

artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 146
3 sept. 2008 à 20:44
ne conaissant pas ton code en entier je ne peux te dire exactement ce que tu dois faire, mais à mon avis ta solution est dans les connecteur logique AND (&&) et XOR(||)
-1
Thebuzz Messages postés 41 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 24 octobre 2010 1
3 sept. 2008 à 20:47
Salut artragis,

Mon code est le suivant et se trouve être le javascript appelé par ma page PHP :
var http = null;
if (window.XMLHttpRequest) // Firefox
http = new XMLHttpRequest();
else if (window.ActiveXObject) // Internet Explorer
http = new ActiveXObject("Microsoft.XMLHTTP");
else // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");


function recup_email(e) {
var sel = document.contact_us.completion_select ;
var nb_el = sel.options.length ;
var selIndex = sel.selectedIndex ;

if (!document.contact_us.completion_text.value)
{ sel.style.display = 'none';
}
else if (e.keyCode == 40 && nb_el) { // fleche bas
if (selIndex < sel.options.length - 1)
sel.selectedIndex = selIndex + 1 ;
}
else if (e.keyCode == 38 && nb_el) { // fleche haut
if (selIndex > 0)
sel.selectedIndex = selIndex - 1 ;
}
else if (e.keyCode == 13 && nb_el) { // entrée
document.contact_us.completion_text.value = sel.options[selIndex].value ;
sel.style.display = 'none';
}
else { // autre touche --> on recherche les emails
val = document.contact_us.completion_text.value ;
if (val.length >= minimum_caractere) {
http.open("POST", "ajax_code_postal.php?what=completion1&case="+case_sensitive+"&val="+escape(val), true);
http.onreadystatechange = handleHttpResponse_recup_email;
http.send(null);
}
}
}

function handleHttpResponse_recup_email()
{
if (http.readyState == 4)
{ emails = eval('(' + http.responseText + ')'); // [id1,id2, ...]

var sel = document.contact_us.completion_select ;
sel.attributes['size'].value = emails.length;

// on vide le select
while(sel.options.length > 0)
sel.options[0] = null

// on rempli avec les nouveaux emails
for(i=0 ; i<emails.length ; i++)
sel.options[sel.options.length] = new Option(emails[i],emails[i]);

if (sel.options.length) {
sel.selectedIndex = 0 ; // on selection le premier element de la liste
sel.style.display = 'block';
}
else
sel.style.display = 'none';
}
}

function recup_mail_click() {
var sel = document.contact_us.completion_select ;
document.contact_us.completion_text.value = sel.options[sel.selectedIndex].value ;
sel.style.display = 'none';
}


A+
-1
Thebuzz Messages postés 41 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 24 octobre 2010 1
16 sept. 2008 à 22:58
Chers tous,

J'ai résolu mon problème en effectuant un include dans chaque appel de mes formulaires et l'affaire est dans le sac...

A+
-1