Problème pour imbriquer Ajax dans un form

coeus Messages postés 3296 Statut Membre -  
Gremy87 Messages postés 360 Statut Membre -
Bonjour,

La question va peut-être paraître banale, mais ça fait longtemps que je suis là-dessus (ou sur des variations sur le thème) et je commence à avoir le cerveau en compote...

Alors voici : J'ai un formulaire sur une page PHP, qui ressemble à la structure suivante :

<form>
	<fieldset>{Contenu quelconque}</fieldset>
	<fieldset>{Contenu quelconque}</fieldset>
	<fieldset>{AJAX}</fieldset>
	<fieldset>{Contenu quelconque}</fieldset>
	<fieldset>{Contenu quelconque}</fieldset>
	<submit>
</form>


Le {AJAX} représente une partie du formulaire, avec plein de boîtes de texte et de cases à cocher, mais dont les éléments ont besoin d'interagir dynamiquement, raison pour laquelle je les ai mis en Ajax.

Le problème, c'est que mon contenu Ajax est assez limité.
Par exemple, j'aurais besoin dans un cas précis que quand l'utilisateur rentre un nombre dans un textbox, tous les texboxes de la même série s'incrémentent à partir de ce nombre. Mais comme mon contenu {AJAX} n'est pas une <form>, je ne peux pas faire une instruction sur la textbox genre : onkeyup="submit();" ; ça n'envoie aucune info.

Également, étant à l'intérieur d'un <form> déjà, je ne peux pas, sur ma page {AJAX}, mettre une balise <script> contenant du Javascript ; ce code ne sera jamais appelé convenablement. En ce moment,. je suis obligé d'appeler mon Javascript de ma page index, dans laquelle est contenu le formulaire ; mais ça pose problème si la portion {AJAX} doit s'envoyer de l'information à elle-même, dans ce cas je dois utiliser des Cookies, mais ils sont très instables...

Alors ma question serait : quelqu'un aurait-il une idée pour arriver à une de deux choses :

- Soit avoir une sorte de <form> dans un <form>, qui servirait exclusivement à recharger la portion {AJAX} du formulaire global ; ou
- Toute autre solution pour que ma page Ajax puisse s'envoyer à elle-même de l'information qui n'a aucune incidence sur le reste du formulaire. Je veux que la portion {AJAX} se recharge presque à chaque fois qu'il y a la moindre modification dans son contenu, mais sans toucher au reste de la page.

J'espère avoir été assez clair, c'est un problème difficile à énoncer sans visuel ni rien... Mais merci infiniment à quiconque aura la patience de m'aider ! Je suis preneur de toute suggestion, même les incertaines ; la vérité pourrait jaillir d'une niaiserie !!! ;-)

Merci encore et bonne soirée !


2 réponses

Meoran Messages postés 1640 Statut Membre 208
 
Salut,

l'ajax sert à dialoguer avec ton serveur sans rechargement de page.

Or, d'après ce que tu dis et ce que j'ai compris, le serveur n'intervient jamais.

Tu peux donc tout faire uniquement en javascript.
0
Gremy87 Messages postés 360 Statut Membre 38
 
Bonjour,

euh waou... j'ai rarement vu tant d'explication pour un problème aussi "simple" (en même temps c'est pas plus mal).

"et je commence à avoir le cerveau en compote... " la je crois qu'on est d'accord.

donc je vais prendre l'exemple que tu donnes:

3 inputs, tu saisis un nombre dans le 1er, ca incrémente les 2 autres de facon a a voir par exemple (1,2,3) ou (5,6,7), etc

<html> 
<head> 
<script language="javascript"> 
function incremente(valeur) 
{ 
if(valeur!="" && valeur!=null) 
{ 
valeur=parseInt(valeur); 
document.getElementById('inp2').value=(valeur+1); 
document.getElementById('inp3').value=(valeur+2); 

} 
else 
{ 
document.getElementById('inp2').value=""; 
document.getElementById('inp3').value=""; 
} 
} 
</script> 
<head> 
<body> 
<input type="texte" id="inp1" onKeyUp="incremente(this.value)"/> 
<input type="texte" id="inp2"/> 
<input type="texte" id="inp3"/> 
</body> 
</html> 


AJAX n'intervient en aucun cas dans ce genre de code. l'AJAX permet d'interagir avec un serveur (en général pour une requête BDD).

voila ;)

RISE OF THE GEEK IS COMMING SOON!!! BWAHAHAHAHA
0