0

表のセルに株価を書き込もうとしています。現在、ループを通過し、最後の価格を書き込んでいます。テーブルの各 #price セルに価格を書き込みたい。これは私が持っているものです:

$(document).ready(function(){

  var updater = setTimeout(function(){
      $.ajax({  
        url: '../html/update.php',  
        success: function(data) { 
          var resp = jQuery.parseJSON(data); 
          var len = resp.price.length;

          for(var i=0; i<len; i++){

                  $('#price').html(resp.price[i].price);

          }
        }
      });
  },60);

});

<?php foreach ($shares as $row): ?>

        <tr >
        <td><?php echo $row["symbol"];?></td>
        <td><a href="extended_info.php?id=<?=$row["symbol"]?>"><?php echo $row["name"];?></a></td>
        <td style="text-align: right;"><?php echo $row["shares"];?></td>
        <td id="price" style="text-align: right;">$ </td>
        <td style="text-align: right;"><?php 
        $change = number_format($row["change"],2);
        echo sprintf( "%+1.2f", $change );
        echo "   ( ";
        echo $row["pct"]; 
        echo "   )";
        ?></td>
        <td style="text-align: right;">$ <?php echo number_format($row["dayGain"],2);?>  </td>    
        <td style="text-align: right;">$ <?php echo number_format($row["total"],2);?></td>
        </tr>

<?php endforeach; ?>
4

2 に答える 2

2

update.php の応答の各行に対して、更新する正しいテーブル行を特定する必要があります。

JavaScript でこれを試してください:

$('[data-symbol="'+resp.price[i].symbol+'"]').html(resp.price[i].price);

そしてこれはPHPで:

<td data-symbol="<?=$row['symbol']?>" style="text-align: right;">$ </td>

各株が一意であると仮定するsymbolと、株の価格で更新する正しいテーブル セルを特定できます。また、data-*属性を使用すると、マークアップの標準準拠が維持されます。

于 2013-04-14T11:36:01.597 に答える