0

我正在尝试制作一个小的 javascript 加载器。我的代码:

<?
//COUNT TOTAL PURCHASE INVOICES
$i = 0;
foreach($xml->tr as $purchase) 
{
    $i++;
}
$steps = 100 / $i;

$steps = str_replace(',', '.', $steps);


foreach($xml->tr as $purchase) 
{   
    ?>
    <script type="text/javascript" charset="utf-8">
    $(document).ready(function() 
    {
        var loaderValue = $("#loaderValue").val();
        newLoaderValue = parseFloat(loaderValue) + parseFloat("<?=$steps?>");

        $("#loaderValue").val(newLoaderValue);
        $(".connect_loader").width(newLoaderValue+"%");
    });
    </script>
    <?
}
?>

该脚本有效,但问题是 javascript 在 php 准备好后运行,因此加载程序一步到位 100%。

还有另一种简单的方法吗?

4

3 回答 3

2

你的问题有点令人困惑。

您必须知道 PHP 用于服务器端和 javascript 客户端。

该脚本有效,但问题是 javascript 在 php 准备好后运行,因此加载程序一步到位 100%。

所以这种行为是正常的。

做你想做的最好的方法是制作一个 Javascript 函数,它执行 Ajax 调用并增加你的加载器取决于函数的结果。

于 2013-09-05T07:30:10.800 回答
0

PHP 对客户端不可见。服务器将处理您的代码的 PHP 部分并生成客户端将看到的 html 页面。
这意味着您不能在运行时使用 PHP。
尝试将您需要的任何值存储到 Javascript 变量中并改用这些值。
理解这一点的一个简单方法是在您的网页上查看页面源代码......您可以看到生成的 html 代码。

于 2013-09-05T07:38:06.903 回答
-1

我希望这行得通。

<?php
//COUNT TOTAL PURCHASE INVOICES
$i = 0;
foreach($xml->tr as $purchase) 
{
    $i++;
}
$steps = 100 / $i;

$steps = str_replace(',', '.', $steps);
?>
<script type="text/javascript" charset="utf-8">
    $(document).ready(function() 
    {
        for(var x = 0; x <= <?php echo $i ?>; x++){
            var loaderValue = $("#loaderValue").val();
            newLoaderValue = parseFloat(loaderValue) + parseFloat("<?php echo $steps ?>");

            $("#loaderValue").val(newLoaderValue);
            $(".connect_loader").width(newLoaderValue + "%");
        }
    });
</script>
于 2013-09-05T07:33:42.530 回答