2010-04-15 1 views
0

Je crée une interface Web pour une table dans Mysql et je veux utiliser la boîte de dialogue jQuery pour la saisie et la modification. J'ai le code suivant à partir de:jQuery UI Dialog passer des variables

$("#content_new").dialog({ 
    autoOpen: false, 
    height: 350, 
    width: 300, 
    modal: true, 
    buttons: { 
     'Create an account': function() { 
      alert('add this product'); 
     }, 
     Cancel: function() { 
      $(this).dialog('close'); 
      $.validationEngine.closePrompt(".formError",true); 
     } 
    }, 
    closeText: "Sluiten", 
    title: "Voeg een nieuw product toe", 
    open: function(ev, ui) { /* get the id and fill in the boxes */ }, 
    close: function(ev, ui) { $.validationEngine.closePrompt(".formError",true); } 
}); 
$("#newproduct").click(function(){ 
    $("#content_new").dialog('open'); 
}); 
$(".editproduct").click(function(){ 
    var test = this.id; 
    alert("id = " + test); 
}); 

Alors, quand un lien avec la classe « editproduct » est cliqué, il obtient l'identifiant de ce produit et je le veux arriver à la fonction ouverte de ma boîte de dialogue. Suis-je sur la bonne voie et quelqu'un peut-il m'aider à obtenir cette variable là-bas?

Merci d'avance.

Répondre

2

Définir une variable par exemple the_id au-dessus de tout dans votre script et essayez ce code:

$("#newproduct").click(function(){ 
    $("#" + the_id).dialog('open'); 
}); 
$(".editproduct").click(function(){ 
    the_id = this.id; 
}); 
+0

Je ne pense pas que ce soit wat je veux. Peut-être que je devrais être plus clair. Le div de dialogue que je ne mentionne pas dans mon code ci-dessus est caché et est initialisé avec la fonction de dialogue $ ("# content_new"). Après cela, il s'ouvre lorsque le lien avec l'ID #newproduct est cliqué. Je veux également que la même boîte de dialogue s'ouvre quand on clique sur le bouton d'édition. Mais alors j'ai besoin de l'ID du produit où l'utilisateur a cliqué sur modifier pour remplir mon formulaire avec les données correctes. Donc, quand un lien avec la classe .editproduct est cliqué, j'obtiens l'identifiant du lien cliqué et je veux l'utiliser dans la fonction ouverte de mon dialogue. – Dante

+0

Oups, vous aviez raison de définir la variable au-dessus du script. Pardon. Le code est le suivant: \t $ ("# newproduct") cliquez sur;. (Function() { \t \t $ (boîte de dialogue ('open') "# content_new"); \t.}) . \t $ ("editproduct ") cliquez sur (function() { \t \t id = this.id; \t \t $ (" # content_new") de dialogue ('ouvert'). \t}); Merci de votre aide. – Dante

+0

@Dante: C'est une bonne nouvelle alors :) – Sarfraz

0

Merci Sarfraz vous aviez raison de la variable. Pour d'autres intérêts le code complet est maintenant:

$(document).ready(function() { 
var id = 0; 
$("#content_new").dialog({ 
    autoOpen: false, 
    height: 350, 
    width: 300, 
    modal: true, 
    buttons: { 
     'Create an account': function() { 
      alert('add this product'); 
     }, 
     Cancel: function() { 
      $(this).dialog('close'); 
      $.validationEngine.closePrompt(".formError",true); 
     } 
    }, 
    closeText: "Sluiten", 
    title: "Voeg een nieuw product toe", 
    open: function(ev, ui) { alert(id); }, 
    close: function(ev, ui) { $.validationEngine.closePrompt(".formError",true); } 
}); 
$("#newproduct").click(function(){ 
    $("#content_new").dialog('open'); 
}); 
$(".editproduct").click(function(){ 
    id = this.id; 
    $("#content_new").dialog('open'); 
}); 
$("#new").validationEngine();}); 

Et sur l'ouverture de la boîte de dialogue modale i obtenir l'ID correct.