Problème bouton d'ajout de ligne de saisie(input) dans formulaire

itry
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 24
Inscription: 7 Fév 2012

Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 15:39

Bonjour à tous,

Voila j'ai un souci avec un bouton qui est censé ajouter des lignes de saisies. Cependant, je pense que le code marche (en effet le bouton marche dans une page html vierge), donc je pense que c'est une erreur de placement dans mes différentes pages, mais j'ai tout essayer et je trouve pas la solution.
Je m'explique pour être plus clair: en fait j'ai une page ajouter.php qui contient une fonction "detail_noeud" et qui appelle la page form_ajax.php qui me permet de renseigner dans une input text un nombre qui répétera un formulaire le nombre de fois saisi, juste qu'ici j'ai pas de problème mais mon bouton qui doit insérer les lignes de saisies ne fonctionnent pas :-(.

PAGE AJOUTER:
Code: Tout sélectionner
<head><script>
function detail_noeud(str){
   if (str==""){
        document.getElementById("cluster_nb_noeud").innerHTML="";
        return;
   }
   if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
   }
   else {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlhttp.onreadystatechange=function(){
     if (xmlhttp.readyState==4 && xmlhttp.status==200){
          document.getElementById("detail_noeud").innerHTML=xmlhttp.responseText;
     }
   }
   xmlhttp.open("GET","form_ajax.php?f=detail_noeud&v="+str,true);
   xmlhttp.send();
}
</script>
</head>

<div id="detail_noeud"></div>



Voila le code qui pose problème form_ajax.php:

Code: Tout sélectionner
if ($fonction == "detail_noeud" && is_numeric($_GET["v"]) && $_GET["v"] != 0){
   $nb_noeuds = $_GET["v"];                               
   $i = 1;
   while ($i <= $nb_noeuds){                              //répète le tableau ci dessous le nombre de fois qui à etait saisi
?>

<p align=left><H3><b><u>Cartes Add-On dans le Produit</u></b></H3></p>
<H5>Si le nombre de cartes est différent, prendre le nombre le plus grand</H5>
<table border="1">
   <tr><td colspan="2" align=center><h3>Tete <?=$i?></h3></td></tr>
   <tr>   
      <td align=center>Cartes Add_on</td>   
   </tr>
  <tr>
      <td><input type=text name=nom_addon <?=$i?> size=30></td>
   </tr>
</table>

<script>
var nlignes = 1;
function Ajouter(){
nlignes++;
saisies.insertAdjacentHTML('BeforeEnd','<BR>Produit '+nlignes+' <input type=text size=4 name=P'+nlignes+'> Quantité '+nlignes+' <input type=text name=QT'+nlignes+'> et de trois '+nlignes+' <input type=text name=QT'+nlignes+'>');
};
</script>
\\bouton qui s'affiche mais qui ajoute pas les lignes de saisies alors que dans une page vierge il fonctionne tres bien
<Form>
<Input Type="Button" Value="Ajouter une ligne" OnClick=Ajouter()>
<br>
<Div ID="saisies"> Produit 1 <input type="text" size=4 name="P1"> Quantité 1 <input type="text" name="QT1"> et de trois 1<input type="text" name="QT1"></Div>
</Form>

<?php
      $i++;
?>
<?php
   }
}
?>



Si il y a quelqu'un pour m'aider, merci d'avance , en esperant que j'ai était assez clair

itry
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 24
Inscription: 7 Fév 2012

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 15:46

Est ce le fait que le bouton "ajouter des lignes de saisi" est dans un "while", si cela pose un problème ? ou si les méthodes d'envoi dans la page même ou entre les deux pages ne sont pas bonnes je sais pas??? merci


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 15:51

Comme ça, sans tester en live c'est difficile de t'aider.
Je ne peux que te conseiller d'analyser ça avec Firebug, le "ça ne marche pas" sera surement plus verbeux ;)


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 15:54

Et d'opter pour un framework JS, grâce auquel tu t'affranchiras de pas mal de bug / soucis liés aux navigateurs.

itry
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 24
Inscription: 7 Fév 2012

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 16:17

en effet, je vous met les différentes pages merci


zeb
WRInaute accro
WRInaute accro
 
Messages: 4563
Inscription: 5 Déc 2004

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 16:34

je suis pas du tout certain que du code javascript chargé via une requête ajax puisse s'exécuter (j'ai déjà eu le souci). La solution est de charger le javascript utile avec la page et de n'utiliser les chargements ajax que pour le html.
Sinon tu peux aussi prévoir un script qui ajoutera dynamiquent d'autre scripts JS mais cela doit se faire depuis le document d'origine.

itry
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 24
Inscription: 7 Fév 2012

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 16:48

ok merci a tous et oui zeb on m'a dit aussi que c'était cela mais je sais pas comment faire , je vais réessayer et si vous avez des idées n'hésitez pas merci bcp


zeb
WRInaute accro
WRInaute accro
 
Messages: 4563
Inscription: 5 Déc 2004

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 17:05

Bah sans regarder ton code en détail, sur l'action qui charge a l'aide d'ajax la partie html pure tu ajoute un script du genre :
Code: Tout sélectionner
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://www.example.com/script/my-script.js';
document.getElementsByTagName('head')[0].appendChild(script);

Mais note bien que c'est pas logique ni normal de devoir charger du code JS dynamiquement. Ou du moins ça devrait être assez rare sur un système bien pensé au départ. Il n'est en effet pas logique de ne pas disposer de ton JS au chargement premier de la page.

itry
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 24
Inscription: 7 Fév 2012

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 17:14

Voila ça marche !!! merci beaucoup !! en effet, il fallait mettre le script fonction dans la page d'origine , la div "<Div ID="saisies"> Produit 1 <input type="text" size=4 name="P1"> Quantité 1 <input type="text" name="QT1"> et de trois 1<input type="text" name="QT1"></Div>" dans la page ajouter et laisser le bouton dans la page form_ajax :-)
merci


zeb
WRInaute accro
WRInaute accro
 
Messages: 4563
Inscription: 5 Déc 2004

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mar Fév 07, 2012 17:23

itry a écrit:Voila ça marche !!!

Good RDV au prochain bug ;-)

itry
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 24
Inscription: 7 Fév 2012

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mer Fév 08, 2012 13:49

Bonjour a tous,

j'ai un autre petit souci, sur ce même script, mon bouton marche mais étant dans un while il se répète le nombre de fois saisi, c'est normal. Mais comment faire pour que les différents bouton ne soit pas dépendant l'un de l'autre? car en effet, que j'appuie sur un bouton ou un autre il m'ajoute mes lignes l'une au dessous de l'autre, alors que je voudrais que chacun ajoute ses propres lignes.


zeb
WRInaute accro
WRInaute accro
 
Messages: 4563
Inscription: 5 Déc 2004

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mer Fév 08, 2012 15:12

il faut associer des ID uniques dans tes objets html et faire en sorte que le javascript agisse que sur l'objet html qui porte cet ID

itry
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 24
Inscription: 7 Fév 2012

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mer Fév 08, 2012 15:41

ok il a sa div id mais ce sera le meme pour tous les boutons, tu va me dire c'est normal. je comprend pas au faite, il faudrait faire des if?


zeb
WRInaute accro
WRInaute accro
 
Messages: 4563
Inscription: 5 Déc 2004

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mer Fév 08, 2012 16:15

itry a écrit:ok il a sa div id mais ce sera le même pour tous les boutons,

Normalement (norme html) il ne dois jamais y avoir deux ID identiques (par définition) Dans ton cas vue que tu as une boucle genre while de mémoire tu peux concaténer un indice à l'ID que tu incrémenterait a chaque tour

genre :
Code: Tout sélectionner
var indice = 1;
while(
condition){
 code = '<div id="MonID' + indice + '">(...)</div>';
 indice++;
}
 


il te faudra surement ensuite adapter ton code javascript pour qu'il prenne en compte l'indice dans sa fonction métier.
Tes boutons qui déclenchent tes actions devront donc transmettre l'indice au javascript dans l'appel de fonction.

itry
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 24
Inscription: 7 Fév 2012

Re: Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Message le Mer Fév 08, 2012 17:39

Waouh, t'es impressionnant, quoi dire de plus, merci!! je vais essayer cela :-)

Problème bouton d'ajout de ligne de saisie(input) dans formulaire

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité