如何从PHP动态获取值?

时间:2016-02-23 15:44:50

标签: javascript php

我希望以动态的方式从js中获取php中的动态值...让我详细说明:首先我显示图像然后代码: enter image description here

<div id="">
 <table border="1" width="820" style="margin-left:15px;">
      <tr>
      <th>Sr #</th>
      <th>Commented Post</th>
      <th>Commenter Name</th>
      <th>Commenter Email</th>
      <th>Comments</th>
      <th>Status</th>
     </tr>

     <?php 

     $values = array();

     while($row= mysqli_fetch_assoc($res)) { 
              $values[] = $row['comment_id']; 

              ?>
          <tr align="center" style="height:50px;">
            <td><?php echo $row['comment_id']; ?></td>
            <td><?php echo $row['post_title']; ?></td>
            <td><?php echo $row['comment_name']; ?></td>
            <td><?php echo $row['comment_email']; ?></td>
            <td><?php echo $row['comment_text']; ?></td>
            <td>
          <?php 
          if($row['status']==0) { ?>
            <div class="status_<?php echo $row['comment_id']; ?>" id="status_<?php echo $row['comment_id']; ?>"><a href="#" style="border-bottom:dotted 2px #0033FF ; text-decoration:none">Unapproved</a></div>    
            <?php  } else { ?>
              Approved
            <?php } ?>

            </td>

          </tr>  

       <?php } 



       ?>


     </table>


     </div>

Js在这里:

<script type="text/javascript">

 $(document).ready(function(){
     var values = <?php echo json_encode($values); ?>; 

        var id = values[0];

        $('.status_'+id).click(function(){
        $("#status_"+id).html("<b>Test</b>");
         });

     var i = values[1];

        $('.status_'+i).click(function(){
        $("#status_"+i).html("<b>Test</b>");
         });

    });
 </script>

我希望动态地在js中获取所有注释ID,以便在单击每个行链接时,它会更改为文本&#34;测试&#34; ...因为我手动编写了js代码。 ..我们如何在js中动态获取所有comment_id ...我希望你知道我想要做什么......

3 个答案:

答案 0 :(得分:2)

为每个元素分配唯一ID是没有意义的。为什么不这样做:

<tr>
  <td>...</td>
  <td><a href="#" onclick="toggle(this, <?php echo $id ?>)">Unapproved</td>
</tr>

然后像

function toggle(node, id) {
   node.parentNode.innerHTML = '<b>test</b>';
   ... do something with "id" value? ...
}

不需要getElementById,分配大量重复的id等等。只需要一个函数调用和一些DOM树遍历。

答案 1 :(得分:0)

你似乎没有真正使用ID。 您需要做的就是确定点击的元素,使用this

可以使用

HTML:

<div class="status"><a href="#" style="border-bottom:dotted 2px #0033FF ; text-decoration:none">Unapproved</a></div> 

JS:

 $(document).ready(function(){

    $('.status').click(function(){
        $(this).html("<b>Test</b>");
     });
});

答案 2 :(得分:0)

尝试在状态TD中添加一个类,例如<td class="status" data-id="<?php echo $row['comment_id'] ?>">// your inital value</td>

使用jQuery,您可以轻松监听附加到事件监听器的事件:

$(document).on('click', '.status', function() { 
  var id = $(this).attr('data-id');
  $(this).html('<strong>Test</strong>');

  // maybe to something with ajax?
  $.ajax({
    url: 'yourfile.php?call=doSomething&id=' + id,
    type: 'post'
  }).done(function(response) { 
    // console.log(response);
  });
});