【发布时间】:2014-11-06 15:51:46
【问题描述】:
我不知道如何做到这一点,我用谷歌搜索并搜索了 stackoverflow 但什么也没有,我确实找到了iterate over raty,但这并不是同一个问题。
这是我的问题。我正在使用 ajax 从查询 MySQL 数据库以获取结果的 php 脚本中获取数组。那里的一切都是直截了当的,它返回一个数组。下面是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>
【问题讨论】:
-
你确定第一部分有效吗?您没有从您的 php 脚本返回有效的 json。
-
@jeroen 是的,第一部分工作我正在返回 jsonp
-
听起来你想要一个
#star元素来为你附加到#care的所有内容。您需要更改标记,以免在每次循环迭代中对同一元素调用.raty。 -
这正是我想要的。
#star每次迭代的元素。我不确定我是否遵循...你能给我举个例子吗?