2009-12-17 2 views
0

Voici comment la situation semble:code Javascript pour gérer le comportement du formulaire

J'ai quelques formes simples

<form action='settings.php' method='post'> 
<input type='hidden' name='setting' value='value1'> 
<input type='submit' value='Value1'> 
</form> 

D'autres petites formes qui lui sont proches ont valeur2, valeur3, ... pour la SETTING1 spécifique

Maintenant, j'ai tous ces formulaires placés sur la sous-page settings.php, mais j'aimerais aussi avoir des copies d'un ou deux d'entre eux sur la sous-page index.php (pour faciliter l'accès, comme ils sont dans certaines situations assez fréquemment utilisés). Chose est que je ne veux pas que ces formulaires basés sur index.php me redirigent de quelque façon que ce soit vers settings.php, il suffit de poster la valeur cachée pour modifier les paramètres et c'est tout.

Comment puis-je faire cela avec JS?

Vive

Répondre

0

Oui, vous pouvez utiliser un appel ajax pour envoyer une demande au fichier settings.php. Vous voudriez probablement que le code PHP retourne quelque chose que le JavaScript peut utiliser pour savoir si la requête a été réussie ou non (par exemple, en utilisant JSON au lieu de HTML).

+0

Je ne suis pas encore familier avec AJAX, des indices sur par où commencer? Merci – Andrew

+0

Je recommanderais certainement d'étudier jquery pour aider à faire votre code JavaScript. Les étapes que je peux penser à ce que vous devez faire: - Lier l'événement clic de bouton à une fonction JavaScript (en utilisant la méthode "bind") - Dans cette fonction, sérialiser les paramètres dans un format que settings.php accepter - Effectuer un appel AJAX en envoyant les données de paramètres (en utilisant la méthode jQuery.get) - Modifier settings.php pour afficher JSON si on l'appelle à partir de votre appel AJAX - Basé sur la réponse de settings.php, donner des commentaires à l'utilisateur . – mopoke

0

Voici une fonction ajax getData.

function getData(dataSource, targetDiv){ 

    var XMLHttpRequestObject = false; 

    if (window.XMLHttpRequest) { 
    XMLHttpRequestObject = new XMLHttpRequest(); 
    } else if (window.ActiveXObject) { 
    XMLHttpRequestObject = new 
     ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    if(XMLHttpRequestObject) { 
     var obj = document.getElementById(targetDiv); 
     XMLHttpRequestObject.open("GET", "settings.php?form="+dataSource+"&t="+new Date().getTime()); 

     XMLHttpRequestObject.onreadystatechange = function() 
     { 
     if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
      obj.innerHTML = XMLHttpRequestObject.responseText; 
     } 
     } 

     XMLHttpRequestObject.send(null); 
    } 
} 

Cette fonction permet d'envoyer le formulaire à votre fichier setting.php qui doit retourner un message de confirmation à index.php (à l'intérieur targetDiv).

Paramètres de la fonction

1) dataSource - est la valeur de la variable que vous envoyez à settings.php

2) targetDiv - est le div sur indice php qui avec afficher la réponse de settings.php

Espérons que cela a du sens.

Questions connexes