如何在这个PHP循环中执行javascript?

时间:2013-10-03 19:11:19

标签: javascript php

我正在尝试为输出的每个数据库结果生成随机div宽度。

代码在循环外部时有效,但每个div都是相同的“随机”宽度。

  • 加载页面,所有div都是200px
  • 刷新页面,所有div都是150px
  • 刷新页面,所有div都是250px ......等。

麻烦的是,我需要每个div都是随机宽度,而不是所有相同的随机宽度...因为这个原因我在循环中添加了我的javascript以获得一个新的'随机'宽度输出数据库值的时间。

当然,它不起作用!

<?php 
            $result = mysql_query("SELECT * from tbl_status ORDER BY tbl_status.date desc");

            while($row = mysql_fetch_array($result))
                    {
                        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
                        <script>
                        $(document).ready(function(){
                            var x = Math.floor((Math.random()*150)+150);
                            $('.statusCont').width(x+'px');
                        });
                        </script>

                        echo'
                    <div class="statusCont">
                        <div class="statusUsr">Tom Adams - Newcastle</div>
                        <div class="statusTxt"><p>' . $row['status'] . '</p></div>
                    </div><!-- ends .statusCont -->
                    ';}
            ?>

1 个答案:

答案 0 :(得分:0)

所有div具有相同随机宽度的原因是因为jquery类选择器$('.statusCont')将返回该类的所有元素。因此,当您的循环打印出最后一个选择器时,它将应用于所有先前加载的元素。

不是在php while循环中包含javascript,你可以在头部编写一个脚本,它会在页面加载后影响页面

$(document).ready(function () {
    $('.statusCont').each(function () {
        var x = Math.floor((Math.random() * 150) + 150);
        $(this).width(x);
      });
 );