2010-04-15 2 views
0

Я создаю веб-интерфейс для таблицы в Mysql и хочу использовать диалог jQuery для ввода и редактирования. У меня есть следующий код, чтобы начать с:jQuery UI Dialog pass on 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); 
}); 

Так, когда связь с классом «editproduct» щелкает он получает идентификатор из этого продукта, и я хочу, чтобы добраться до открытой функции диалога моего.

Я нахожусь на правильном пути и может кто-то помочь мне получить эту переменную там.

Заранее спасибо.

ответ

2

Установить переменную, например, the_id на вершине всего в вашем скрипте и попробовать этот код:

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

Я не думаю, что я так хочу. Может быть, я должен быть более ясен. Диалог div, который я не упоминаю в моем коде выше, скрыт. En инициализируется с помощью функции диалога $ ("# content_new"). После этого открывается, когда нажимается ссылка с номером id #newproduct. Я также хочу открыть тот же диалог, когда вы нажмете кнопку редактирования. Но тогда мне понадобится идентификатор продукта, в который пользователь щелкнул править, чтобы заполнить мою форму правильными данными. Поэтому, когда нажата ссылка с классом .editproduct, я получаю идентификатор щелкнутой ссылки и хочу использовать ее в открытой функции моего диалога. – Dante

+0

К сожалению, вы были правы в настройке переменной поверх скрипта. Сожалею. Код заключается в следующем: \t $ ("# NewProduct") нажмите кнопку;. (Функция() { \t \t $ ("# content_new") диалог ('открытый'); \t.}) . \t $ ("editproduct ") нажмите (функция() { \t \t ID = this.id; \t \t $ (" # content_new") диалог ('открытый');. \t}); Спасибо, что вам нужна помощь. – Dante

+0

@ Данте: Это хорошие новости, тогда :) – Sarfraz

0

Спасибо Сарфраза вы были правы насчет переменной. Для других интересов полный код теперь:

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

А на открытии модального диалогового окна я получить правильный идентификатор.