2011-11-21 53 views
0

我在我正在開發的網站中使用jQueryUI對話框小部件。基本上,該頁面列出了朋友列表以及向每個朋友發送消息的鏈接。這是html的一個片段。獲取一個php變量並將其傳遞給一個jQueryUI對話框

... 
<td><?php echo $realname; ?></td> 
<td><?php echo $username; ?></td> 
<td><a href="#" id="opener">Send Message</a></td> 
... 

我的JavaScript看起來像:

$(document).ready(function() { 
var $dialog = $('#dialog') 
    .dialog({ 
    autoOpen: false, 
    resizable: false, 
    modal: true, 
    height: 350, 
    dialogClass: 'no-close', 
    draggable: false 
}); 
$("#opener").click(function() { 
    $dialog.dialog('open'); 
    return false; 
}); 
$('#closedialog').click(function() { 
    $dialog.dialog("close"); 
    return false; 
}); 
}); 

最後,在我的HTML的底部,有云:

<div id="dialog" title="Send a message"><form action="<?php echo $currURL; ?>"> 
<p>To: {would want for something like "RealName (username)" to appear here}</p> 
    <div align="center"> 
    <textarea cols="40" rows="10"></textarea> 
    </div> 
<p align="right"><span class="button" style="text-align: right;"> 
    <input type="submit" value="Submit" /><button id="closedialog">Cancel</button> 
</span></p> 
</form></div> 

比方說,你的好友名單上的第一人是約翰史密斯(johnsmith)和下一個是簡·史密斯(janesmith)。是否有可能將$ realname和$ username的值傳遞給該錶行,以便在jQuery對話框小部件中將其打印出來? - 或 -您有關於如何更好/有效地做到這一點的建議嗎?

回答

2
  • 放一些佔位您的對話框中,找到它們並存儲它們的引用。
  • 更改id="opener"class="opener"
  • 每當.opener鏈接被點擊,看在它周圍的陣爲你後的值,並將其寫入到您的參考佔位

演示 http://jsfiddle.net/uHXbV/5/

這可以通過使用data- attrs或類似的東西進一步增強,但演示儘可能少地影響orde中的原始代碼讓它容易理解。

+0

謝謝。這是我需要的。我會從這裏開始工作。 –

+0

沒問題,謝謝接受。 – JAAulde

+1

我實際上有3個需要修復的對話框。你用這個回答了一切。我只是感激。再次感謝。 –

0

而不是綁定點擊到#opener你應該有一個onclick處理程序在你錨點標籤調用一個函數與這些參數。然後該函數將設置對話框函數使用的對話框元素的內容。也許是這樣的:

<td><a onclick="openDialog('<?= $realname; ?>','<?= $username; ?>');">Send Message</a></td> 

然後你的函數是:

function openDialog(realname, username) { 
    // set the contents of you dialog elements. 
    $('#messageRealname').text('realname'); 
    $('#messageUsername').text('username'); 
    // now open the dialog 
    $dialog.dialog('open'); 
} 

然後

+0

注意,我意識到許多人不贊成php短標籤,所以用<?php echo迴應如果這是您的偏好。 – davidethell

+1

請不要使用onclick屬性,沒有理由將HTML和JavaScript混合在一起。把用戶名放在一個方便訪問JavaScript的地方(如自定義數據屬性)並綁定到JavaScript的click事件。如果您打算這樣做,請確保使用json_encode對其進行正確編碼,以用於js代碼和htmlspecialchars中,以用作HTML屬性。 – shesek

+0

我會再次呼籲避免使用'onclick' attr - 特別是因爲jQuery可用並且正在使用中。 – JAAulde

相關問題