Récupération champ INPUT dans un table et passage de la valeur dans URL

Résolu
bullrot1985
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009
- 9 oct. 2008 à 11:20
nickadele
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013
- 9 oct. 2008 à 18:48
Bonjour a tous.

Je crée une tableau dynamiquement avec une requete SQL qui me donne ceci :

for ($numero = 1; $numero<$nbrentree+1; $numero++)
        {
        $donnees = mysql_fetch_array($reponse);
        echo '<tr class="zone"  onClick="Confirmer()">
                <td>' . $numero . ' </td>                  
                <td>' . $donnees['Last_name'] . '</td>
                <td>' . $donnees['First_name'] . '</td>
                <td>' . $donnees['Practice'] . '</td>
               
              </tr>';
        }
        echo'</tbody>
          </table>';

mes valeurs de l'input sont bien générées : Id_sales corespond bien au nom et prenom dans la bdd.

ensuite ma fonction Confirmer est celle-ci :

function Confirmer()
{
    var answer = confirm("Do you want to delete this sales ?")
    if (answer)
    {
        window.location.href = "index.php?page=P_Deletesales&del=yes&id="+document.getElementById('idsales').value;
    }
    else
    {   
    }                           
}

je voudrais récuper ma valeur idsales  et la mettre dans ma barre d'adresse mais apparement il reprend toujours le 1er idsales de la 1er ligne générée.

Si vous pouviez maider.

Merci d'avance.

15 réponses

bullrot1985
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

9 oct. 2008 à 15:11
super. ca marche enfin. 5 jours que je suis sur ce bug grrrr.

Je te remercie beaucoup pour ton aide.

j'ai rajouter ceci pour que cela fonctionne :

echo '<tr class="zone" onClick="Confirmer(' . $numero . ')">
                <td>' . $numero . ' </td>

Encore merci
3
cs_bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
9 oct. 2008 à 11:39
bonjour,
1° il n'y a pas ID dans la balise
   IE peut remplcer cet ID par le name
   pas les autres navigateurs
   MAIS :
2° un ID doit être unique dans une page
   là tu mets plusieurs
   déjà, pour gére par leur name, il faudrait dire lequel idsales[index]
  pour un ID : pas possible.

   ajoute ID="idsales'.$numero.'" ....
   tu pourras utiliser gtElementById("idsales"+index)...

CordialementBul[mon Site][M'écrire]
0
bullrot1985
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

9 oct. 2008 à 12:21
Merci pour ta solution.

Oui effectivement l'idsales est unique.

Pourais tu m'expliquer ou me montrer un exemple de ce que tu entends par gtElementById("idsales"+index)...

j'ai essayer ceci : +document.getElementById('idsales'+$numero).value;  mais sans résultat

merci
0
cs_bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
9 oct. 2008 à 12:47
>>Oui effectivement l'idsales est unique.
euh... pas compris !
tu n'as pas ID !
un ID doit être unique dans une page !

>>+document.getElementById('idsales'+$numero).value;
où ? comment ?

et s'il te plait : mets nous la page HTML résultante ! pas le php !
comment on devine le contenu de ta base de données ? le contenu des $variable ? ....
( enfin ! un extrait ! le strict nécessaire )

en gros : </td>    
mais peut-être même pas nécessaire...
tu appelles la fonction confirmer en lui l'input sur lequel tu est
    du style : ...onclick="confirmer(this);"...
    et dans confirmer(toto)    toto.value c'est le contenu de ton input

Bul[mon Site][M'écrire]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nickadele
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

9 oct. 2008 à 12:57
Bonjour,

pour répondre à ta question, tu dois :
1. ajouter à l'appel de ta fonction Confirmer() l'identifiant de la ligne, dans ton cas c'est $numero (coté serveur) ce qui donnerait en html coté client : <tr class="zone" onClick="Confirmer('1')">
2. ajouter la propriété id à ton input + l'identifiant de la ligne ,dans ton cas c'est $numero (coté serveur) ce qui donnerait en html coté client :
3. modifier la fonction Confirmer() :
function Confirmer(monid)
{
var answer = confirm("Do you want to delete this sales ?")
if (answer)
{
window.location.href = "index.php?page=P_Deletesales&del=yes&id="+document.getElementById('idsales' + monid).value;
}
else
{
}
}

Nickadele
0
bullrot1985
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

9 oct. 2008 à 14:10
Oui j'ai bien saisi le probléme et j'en ai reglé une partie.
Mais je n'arrive pas a passer ma valeur de l'idsales dans ma fonction javascript.

Voici ce que j'ai fais :

for ($numero = 1; $numero<$nbrentree+1; $numero++)
        {
        $donnees = mysql_fetch_array($reponse);
        echo '<tr class="zone"  onClick="Confirmer(this)">
                <td>' . $numero . ' </td>                 
                <td>' . $donnees['Last_name'] . '</td>
                <td>' . $donnees['First_name'] . '</td>
                <td>' . $donnees['Practice'] . '</td>
              
              </tr>';
       
        }
        echo'</tbody>
          </table>';

ma fonction JS :

function Confirmer(monid)
{
    var answer = confirm("Do you want to delete this sales ?")
    if (answer)
    {
        window.location.href = "index.php?page=P_Deletesales&del=yes&id="+document.getElementById('idsales' + monid).value;
    }
    else
    {   
    }                           
}

et mon code resultant :

<tr class ="zone"  onClick="Confirmer(this)">
                <td>1 </td>                 
                <td>ff</td>
                <td>rudy</td>
                <td></td>
              
              </tr><tr class="zone"  onClick="Confirmer(this)">
                <td>2 </td>                 
                <td>rrr</td>
                <td>robert</td>
                <td></td>
              
              </tr><tr class="zone"  onClick="Confirmer(this)">
                <td>3 </td>                 
                <td>rrr</td>
                <td>roger</td>
                <td></td>
              
              </tr><tr class="zone"  onClick="Confirmer(this)">
                <td>4 </td>                 
                <td>rrrrr</td>
                <td>rrrrr</td>
                <td></td>

Merci
0
cs_bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
9 oct. 2008 à 14:33
ça progresse....

monid dans la fonction Confimer c'est quoi ?

c'est le tr qui contient l'input texte  sur lequel on clique, c'est à dire un objet,
      tu utilises document.getElementById('idsales' + monid).value;
      donc ??? "idsales"+un objet, le tr sur lequel on clique.value ? connais pas !!!!

déjà, met le onclick sur l'input et utilise directement monid...
window.location.href = "index.php?page=P_Deletesales&del=yes&id="+ monid.value;
ça devrait l'faire...

          Bul [mon Site] [M'écrire]         
0
bullrot1985
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

9 oct. 2008 à 14:40
Non en faite j'utilise l'input comme valeur cachée.

Input type=hidden ( ici je ne l'ai pas mis en hidden pour que je puisse voir si il prends le bon id )

Donc mon input me sert uniquement de repaire et sera invisible pour l'utilisateur.
je dois coder ma page pour qu'il puisse cliquer sur une ligne donc <tr>
0
bullrot1985
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

9 oct. 2008 à 14:44
lorsque je clic sur un client il me passe en parametre ceci :

index.php?page=P_Deletesales&del=yes&id=undefined

j'espere que cela pourrais t'aider a voir ou est mon erreur.
0
cs_bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
9 oct. 2008 à 14:51
caché ou pas...    le onclick est-ce le tr !
et dans ce cas donc, tu ne récupères pas le .value de l'input text

_ fais comme nickadele ( salutatoit nick ! ) t'as montré ( appel avec le n° de lélément,
    ce sera probablement le plus simple ? )
_ retrouve le n° de l'input en utilisant rowindex qui est le n° de ligne du tableau
_ met un id au tr, qui te permette de retrouver celui de l'input
   ou sur le td qui sera cliqué
_ ...

          Bul  [mon Site] [M'écrire]  
0
bullrot1985
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

9 oct. 2008 à 14:58
Je sais pas si j'ai bien compris ou pas...
Je vais vous montrer mon tableau pour plus de clarté.

normalement le champ input est invisible.
je dois récuper les valeurs de mon champ Input.

donc quand l'utilisateur clic sur la ligne de nicole j'aimerais dans ma barre d'adresse idsales=112

Je pense que c'est plus clair comme ca :)
0
cs_bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
9 oct. 2008 à 15:05
function Confirmer(num)
{
    var answer = confirm("Do you want to delete this sales ?")
    if (answer)
    {
        window.location.href =
          "index.php?page=P_Deletesales&del=yes&id="+ document.getElementById('idsales' + num) .value;
    }
}
...

    <tr class ="zone"  onClick= "Confirmer('1'); ">
                <td>1 </td>                
                <td>ff</td>
                <td>rudy</td>
                <td></td></tr>
    <tr class ="zone"  onClick="Confirmer('2');">
                <td>2 </td>                
                <td>rrr</td>
                <td>robert</td>
                <td></td></tr>
                    

          Bul  [mon Site]  [M'écrire]         
0
cs_bultez
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
9 oct. 2008 à 15:18
c'était probablement le plus simple ( à écrire )
nickel si ça baigne.
          Bul [mon Site] [M'écrire]         
0
nickadele
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

9 oct. 2008 à 18:43
Bizarre comme on peut parfois se compliquer la vie  !
En résumé c'est ce que j'avais mis dans mon post mais sans la source.

En passant, hello bultez !

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
0
nickadele
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

9 oct. 2008 à 18:48
Si tu veux faire encore plus simple :

echo '<tr class= "zone" onClick="Confirmer(' . $donnees['Id_sales'] . ')">
                <td>' . $numero . ' </td><td>.....

function Confirmer( num )
{
    var answer = confirm("Do you want to delete this sales ?")
    if (answer)
    {
        window.location.href =
          "index.php?page=P_Deletesales&del=yes&id="+ num;
    }
}
.....

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
0