2009-08-03 5 views
0

Meine Frage ist, wie man den Benutzernamen in das Bestätigungsdialogfeld zieht ... müsste ich die Art und Weise ändern, wie mein PHP die Liste der Benutzer generiert oder würde mootools coding benötigen, um die Eltern auszuwählen und dann der Benutzername ... wenn ja, wie könnte ich das erreichen?Fragen zu PHP und mootools

Ich habe meinen PHP-Code mit Codeigniter die folgenden Dinge zu generieren, die im Grunde einen Benutzernamen und einen Link zum Löschen des Benutzers enthält.

<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> 

Ich habe folgendes Mootools Code um Pop-up und Bestätigung, um zu sehen, ob der Benutzer wirklich dem Benutzer

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

Antwort

3

Im Folgenden wird gut auf dem Markup arbeiten:

$$('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(); 
    } 
}); 

Da der nächsten Link zu den Benutzernamen hält, können Sie einfach das DOM, um es durchqueren und den Textwert erhalten.

+1

sollten Sie GetNext() nicht verwenden. Get ("Text") obwohl? –

+1

** @ Dimitar: ** Ja, ich habe es gerade korrigiert ... Ich habe gestern auf viele jQuery-Fragen geantwortet, ich denke, es hat mich vergiftet (ich bin normalerweise ein MooTools-Entwickler). –

2

Unter der Annahme, dass Ihr HTML immer die oben angegebenen Markup folgen löschen möchten, Ihre confirm() Aufruf könnte so etwas wie:

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

Dies beruht auf der Tatsache, dass das nächste Element nach dem ‚dele Der Link ist ein Element, das den gelöschten Benutzernamen enthält.

1

Große Antworten.

Ich persönlich mag nicht gerne auf meine HTML-Struktur zu viel für diese Art von Sache und so neigen dazu, alle meine Daten in einem Objekt oder auf den HTML-Elementen (in wenigen Fällen) zu speichern.

Die erste ist ein bisschen tiefer als ich jetzt erklären möchte!

So letzteres tun Sie das html ausspucken könnte:

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

und dann in Ihrem Mootools verwenden

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

Dann können Sie tun, was Sie in Zukunft Ihre HTML wollen . Rel ist nett, weil es immer noch gültig ist.