[英]How to pass PHP variable (from loop process) to Jquery
我的編碼中有一個while循環
while (($i < $num3b)&&($i < ($start+$perpage))) {
$tododetail_id=mysql_result($result3b,$i,"tododetail_id");
$comment=formatUrlsInText(mysql_result($result3b,$i,"comment"));
$staff_name=mysql_result($result3b,$i,"staff_name");
echo "<tr><td><span><font color='#5858FA'>" . $staff_name . nl2br($comment) . "</font>
<span style='float:right' id='create-user'>Reply Message</span>";
$i++;}
如何點擊“回復消息”jquery將彈出$staff_name
和$comment
。 這是我的jquery代碼
$( '[id^="create-user"]')
.click(function() {
var nameStf = $(this).data('id');
alert (nameStf);
$( "#dialog-form" ).dialog( "open" );
});
謝謝
您可以使用data-attributes
HTML
<span style='float:right' class="reply" data-staffname="staffname" data-comment="staff comment">Reply Message</span>
jQuery的
$(document).ready(function() {
$('span.reply').click(function() {
var staffname = $(this).data('staffname');
var comment = $(this).data('comment');
alert(staffname + ': ' + comment);
});
});
你的HTML很亂,你的jQuery與它不對應。 你有這條線:
$( "#dialog-form" ).dialog( "open" );
但是你沒有向我們展示任何包含帶有ID dialog-form
的元素的HTML。
您應重新構建HTML,以便不使用font
標記,每個ID都是唯一的,並且標記已正確嵌套和關閉。 如果您不確定,請通過驗證程序運行輸出HTML。
然后,你可以做這樣的事情:
$('span').click(function(){
alert($(this).closest('.comment'));
});
顯然,您必須將注釋數據放在帶有類comment
的元素中。
此外,如果要使用jQuery通過其ID選擇元素:
// Incorrect
$('[id^="create-user"]')
// Correct
var $createUser = $('#create-user');
// Also correct (normal JavaScript)
var createUser = document.getElementById('create-user');
當你回顯標簽時,我看不到你在任何地方關閉它們。 您的HTML必須正確才能使jQuery正常工作。 ID也必須是唯一的,因此請使用class。
HTML
<tr>
<td>
<span style="color: #5858FA;">SOMETHING 2</span>
<span class="create-user">Reply Message</span>
</td>
</tr>
JS
$('.create-user').click(function(){
var $text = $(this).prev().text();
alert($text);
});
id必須是唯一的,就像數據庫中的id一樣。 然后將jquery腳本放在循環中。 或者在html中使用onclick函數將id傳遞給JavaScript函數。
<?php
echo "<tr><td><span><font color='#5858FA'>" . $staff_name . nl2br($comment) . "</font>
<span style='float:right' id="<?php echo $row['id'];">Reply Message</span>";
$i++;
?>
<script type="text/javascript">
$( "#<?php echo $row['id']; ?>")
.click(function() {
var nameStf = $(this).data('id');
alert (nameStf);
$( "#dialog-form" ).dialog( "open" );
});
</script>
<?php }?>
盡量不要在echo語句中使用html,因為echo是一個從服務器加載的php語句,它比在瀏覽器中加載的普通html慢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.