我要做的是通过抓取数据库信息并将其放入javascript数组来创建幻灯片。我目前正在使用jquery ajax函数从单独的php文件中调用信息。这是我的PHP代码:
mysql_connect('x', 'x', 'x') or die('Not Connecting');
mysql_select_db('x') or die ('No Database Selected');
$i = 0;
$sql = mysql_query("SELECT comicname FROM comics ORDER BY upldate ASC");
while($row = mysql_fetch_array($sql, MYSQL_ASSOC)) {
echo "comics[" .$i. "]='comics/" .$row['comicname']. "';";
$i++;
}
我想要的是从mysql查询在php中创建数组,然后能够使用javascript引用它以构建一个简单的幻灯片脚本。如果您有任何问题或建议,请与我们联系。
答案 0 :(得分:3)
好的.php echo json_encode('name of your php array');
然后在javascript方面你的ajax应该是这样的:
$.ajax({
data: "query string to send to your php file if you need it",
url: "youphpfile.php",
datatype: "json",
success: function(data, textStatus, xhr) {
data = JSON.parse(xhr.responseText);
for (i=0; i<data.length; i++) {
alert(data[i]); //this should tell you if your pulling the right information in
}
});
如果你有很多数据,可能会将data.length替换为3或者其他东西...如果你获得正确的数据使用了yourJSArray.push(data [i]);我确信实际上有更直接的方式......
答案 1 :(得分:3)
您可能希望将所有行提取到一个大型数组中,然后将其编码为JSON
:
$ret = array();
while($row = mysql_fetch_array($sql, MYSQL_ASSOC))
$ret[] = $row
echo json_encode($ret);
然后,在客户端,调用类似的东西:
function mycallback(data)
{
console.log(data[0].comicname); // outputs the first returned comicname
}
$.ajax
(
{
url: 'myscript.php',
dataType: 'json',
success: mycallback
}
);
成功完成请求后,将调用mycallback
并传递一组地图,每个地图代表结果集中的记录。
答案 2 :(得分:2)
从你的问题中说出来有点难,但听起来像是:
如果是这样,解决方案非常简单:在AJAX回调中,将结果放入全局变量(例如window.myResults = resultsFromAjax;),然后在想要开始幻灯片放映时引用该变量。
但是,由于时间安排可能会成为一个问题,因此更有意义的是实际从回调中开始播放幻灯片。作为额外的奖励,该方法不需要全局变量。
如果这不是你被困的地方,请发布更多信息。