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

Signaler
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009
-
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013
-
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

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

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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
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]
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>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]
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

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
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

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
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
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]         
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

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>
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

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.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
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]  
Messages postés
22
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
26 avril 2009

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 :)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
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]         
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
c'était probablement le plus simple ( à écrire )
nickel si ça baigne.
          Bul [mon Site] [M'écrire]         
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

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
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

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