迭代非jquery函数/插件

时间:2014-11-06 15:51:46

标签: php jquery ajax raty

我不知道如何实现这一目标,我已经用Google搜索并搜索了stackoverflow,但没有,我确实找到了iterate over raty,但这并不是同一个问题。

这是我的问题。我正在使用ajax从php脚本中获取一个数组,该脚本向MySQL数据库查询结果。一切都很直接,它返回一个数组。在rate.php文件下方。然后我使用$.each迭代数组div中的节目我想要做的是在每次迭代中添加.raty评级系统。目前,评级系统(星号)被添加在所有记录的底部/末尾,而不是每次迭代。我怎么能做到这一点?以下是代码

' rate.php'返回结果的文件

    <?php
    require_once("../auth/config.class.php");
    require_once("../pages/request.class.php");


    $config = new Config;

    $dbh = new PDO("mysql:host=" . $config-> dbhost . ";dbname=" . $config->dbname,  $config->dbuser, $config->dbpass);

    $request = new Request($dbh, $config);

    $rateme = $request->rateCare();

        echo $_GET['callback'] . '('.json_encode($rateme).')';
        //echo json_encode($rateme);
        //  var_dump($rateme);

    ?>

显示结果的html文件 rating.php

    <?php

    $page_title = "IntelyCare: Rating ";
    //$page_description = "Description of this page";
    require_once    ("../template/header.php");
    ?>

    <body>



    <div data-role="page">
    <script type="text/javascript">

    $(document).ready(function()
    {


         $.ajax({
            type: "GET",
            cache:false,
            url: "../pages/rate.php",
            dataType:'jsonp',

            success: function(data){
                    $.each(data, function()
                    {

                        $('#care').append("Date: " + this.caredate + '<br/ >');
                        $('#care').append("Care Giver: " + this.fname + "  " + this.lname );
                        $('#care').append('<br />');
                        $('#care').append('<br />');

                        $('#star').raty({
                            starType: 'i',
                            hints: ['Poor', 'Ok', 'Good', 'Very Good', 'Excellent' ]    
                            });

                    });


                                }
                });

    });                 


            </script>
    <div data-role="header" >
        <h1>IntelyCare</h1>
    </div>

    <div data-role="main" data-theme="a" class="ui-content">
        <div data-role="content">
        <h3>Rate Caregiver</h3>
            <div id="care">

            </div>
            <div id="star"></div>
        </div>
    </div>
    </div>
    </body>
    </html> 

更新后的工作Javascript         

    $(document).ready(function()
    {   

         $.ajax({
            type: "GET",
            cache:false,
            url: "../pages/rate.php",
            dataType:'jsonp',

            success: function(data){
                    $.each(data, function(id, obj)
                    {
                        divid= obj.id
                        para = $('<div id="'+ divid + ' ">'+'</div>');
                        $('#care').append("Date: " + obj.caredate + '<br/ >');
                        $('#care').append("Care Giver: " + obj.fname + "  " + obj.lname );
                        $('#care').append(para);
                        $('#care').append('<br />');
                        $('#care').append('<br />');                            
                        $(para).raty({
                            starType: 'i',
                            hints: ['Poor', 'Ok', 'Good', 'Very Good', 'Excellent' ]    
                            });

                      });   



                    }


                }); 
    });                 
    </script>

1 个答案:

答案 0 :(得分:1)

修改

安德烈在评论中说得对。您始终将.raty附加到#star。将id="rate{uniqueidhere}"的div添加到#care,在2个换行符之前添加,并将.raty附加到新添加的元素。