簡體   English   中英

如何將PHP變量(從循環過程)傳遞給Jquery

[英]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);
});

DEMO

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM