2009-08-03 8 views
0

Ma question est comment tirer le nom d'utilisateur dans le popup de confirmation ... devrais-je changer la façon dont mon php génère la liste des utilisateurs ou aurait-il besoin d'un codage mootools pour sélectionner le parent et alors le nom d'utilisateur ... si oui, comment pourrais-je y parvenir?Questions concernant PHP et mootools

J'ai mon code PHP en utilisant codeigniter pour générer les choses suivantes qui sont essentiellement la liste d'un nom d'utilisateur et un lien pour supprimer l'utilisateur.

<div class='item'> 
<a href="http://localhost/nstrust/index.php/admin/users/delete/9" class="delete">Delete</a> <a href="http://localhost/nstrust/index.php/admin/users/view/9" class="view">Jamalia</a> 
</div> 
<div class='item'> 
<a href="http://localhost/nstrust/index.php/admin/users/delete/13" class="delete">Delete</a> <a href="http://localhost/nstrust/index.php/admin/users/view/13" class="view">Timothy</a> 
</div> 

J'ai le code Mootools ci-dessous pour faire apparaître et la confirmation pour voir si l'utilisateur veut vraiment supprimer l'utilisateur

window.addEvent('domready', function() 
{ 
    $$('a.delete').addEvent('click', function(event) 
    { 
     if (!confirm("Are you sure you want to remove this user?")) 
     { 
      event.stop(); 
     } 
    }); 
}); 

Répondre

3

Ce qui suit fonctionnera bien sur votre balisage:

$$('a.delete').addEvent('click', function(event) { 
    var username = $(event.target).getNext().get('text'); //The username is in the next tag. 
    if (!confirm("Are you sure you want to remove " + username + "?")) { 
    event.stop(); 
    } 
}); 

Depuis le lien suivant contient le nom d'utilisateur, vous pouvez simplement traverser le DOM et obtenir la valeur du texte.

+1

ne devriez-vous pas utiliser getNext(). Get ("text") cependant? –

+1

** @ Dimitar: ** Oui, je viens de le corriger ... J'ai répondu à de nombreuses questions jQuery hier, je suppose que cela m'a empoisonné (je suis un dev MooTools habituellement). –

2

En supposant que votre code HTML sera toujours suivre le balisage ci-dessus, votre confirm() appel pourrait être quelque chose comme:

var username = $$(event.target).getNext().text; confirm("Are you sure that you want to delete " + username + "?");

Cela repose sur le fait que l'élément suivant après la « DELE te 'link sera un élément contenant le nom d'utilisateur en cours de suppression.

1

Excellentes réponses.

Personnellement, je n'aime pas trop compter sur ma structure html pour ce genre de chose et j'ai donc tendance à stocker toutes mes données dans un objet, ou sur les éléments html (dans un petit nombre de cas).

Le premier est un peu plus en profondeur que ce que j'ai envie d'expliquer en ce moment!

Donc, pour faire ce dernier, vous pouvez avoir le code html cracher:

<a href="..." class="delete" rel="Jamalia"> 

puis utiliser dans vos Mootools

var username = this.get('rel'); 

Ensuite, vous pouvez faire ce que vous voulez votre code HTML à l'avenir . Rel est sympa parce que c'est encore valide.