2012-07-29 57 views
3

我正在爲我的一個網站開發一個用戶管理面板,並且試圖找出如何將所有正確的信息正確傳遞給對話框。我的jQuery是相當有限,所以請裸露在我身邊。如何將jQuery變量傳遞給由對話框打開的div

HTML顯示用戶是這樣的:

<table> 
    <tr> 
    <td>{$v.id}</td> 
    <td><a href="#" class="editUser" data-userid="{$v.id}">{$v.username}</a></td> 
    <td>{if $smarty.now - $v.last_active <= 900}<span style="color: green;">Online</span>{else}<span style="color: #e61e1e;">Offline</span>{/if}</td> 
    <td>{$v.email}</td> 
    <td>{$v.time}</td> 
    <td>{$v.notes}</td> 
    <td align="center"><input name="delete" type="checkbox"/></td> 
    </tr> 
</table> 

當你點擊用戶名,它會打開與jQuery UI的一個對話框,這是jQuery的代碼,處理如下:

$('a.editUser').click(function(){ 
     $('#editUser').dialog('open'); 
     //var userID = $(this).data('userid'); 
     //var username = $(this).attr('title'); 
     //$('#editUser').html(userID); 
    }); 

很簡單。註釋掉的代碼就是我用來測試以確定它是區分用戶的。

當然,這會打開對話框,工作得很好。但是,我不確定如何在對話框打開時設置div來正確顯示用戶的信息。此外,我希望能夠向用戶的帳戶提交更改,但我不確定如何將用戶ID提交到表單處理器,以便知道要修改哪個用戶。

我已經搜索了一段時間了,發現了很多類似的線程,但沒有一個真正涵蓋了這一點。

請幫忙嗎?

+0

對話框的代碼在哪裏?首先顯示,然後我會看到如何幫助 – 2012-07-29 14:57:55

+0

@siidheesh http://jqueryui.com/download – Rob 2012-07-29 15:02:31

+0

你可以發佈#editUser html代碼嗎? – afrin216 2012-07-29 15:21:42

回答

2

創建你#editUser DIV與

<div id="editUser"> 
<span id="username"></span> 
</div> 

在你的功能,填補與對話框點擊用戶信息之前調用dialog函數。

$('a.editUser').click(function(){ 
     $("#username").html($(this).data('userid')); 
     $('#editUser').dialog('open'); 
     //var userID = $(this).data('userid'); 
     //var username = $(this).attr('title'); 
     //$('#editUser').html(userID); 
    }); 

現在在其他地方用隱藏變量創建表單。在您的提交按鈕上,調用一個javascript函數,該函數將從上述ID(如「#username」)或JS變量中提取信息,如果您使用它們並在提交之前將其設置爲表單。

1

好的,因爲對話框div和上面的代碼在同一個文檔中,所以你可以在對話框的div中添加一個已知id的div,例如<div id="stufftochange"></div>

然後,你打開DIV之前,請撥打$('#stufftochange').html("user's info here");動態更改其內容,然後$('#editUser').dialog('open');

相關問題