2013-12-19 54 views
1

进口在服务器端的多个阵列我把从MySQL表中的数据和我一起json_encode发送到JQuery的:如何使用循环从数据库

<?php 
include 'DB.php'; 

$result20 = mysql_query("SELECT * FROM Gallery WHERE Section = 'Chosen' AND ID = 19");   
$array20 = mysql_fetch_row($result20);       

$result19 = mysql_query("SELECT * FROM Gallery WHERE Section = 'Chosen' AND ID = 19");   
$array19 = mysql_fetch_row($result19); 

$data = array(); 
$data['Div20'] = $array20; 
$data['Div19'] = $array19; 
echo json_encode($data); 
?> 

json_encode出口这个数组:{“Div20”:” Image20“,”20.jpg“],”Div19“:[”Image19“,”19.jpg“]}

但是,在客户端我需要使用循环来使用事件中的所有数组。当我使用它时,它不适用于多个数组,怎么做?

$(function() { 
    $.get('data.php' ,function(response) 
    { 
    var data = jQuery.parseJSON(response); 
    var array; 
    for(array in data) 
    { 
     var ImageID = data.array[0]; 
     var ImageSrc = data.array[1]; 

     $('#'+ImageID).click(function(){ 
      //some codes 
     }) 
    } 
    }) 
}) 
+0

检查与控制台。显示任何错误? – rynhe

+0

不,它没有任何错误,但它不工作 – MojtabaSh

回答

1

试试这个

$(function() { 
    $.get('data.php' ,function(response) { 
    var data = jQuery.parseJSON(response); 
    $.each(data, function(key, value) {   
     var ImageID = value[0]; 
     var ImageSrc = value[1]; 

     $("#"+ImageID).click(function(){ 
      //some codes 
     })  
    }) 
}) 
+0

感谢大家,但是这个代码工作得很好。非常感谢rynhe – MojtabaSh

+0

欢迎!!!!!!! :) – rynhe

1

如果添加#imageid像它会工作,

$('#'+ImageID).click(function(){ 
    //some codes 
}); 

我试着给你一些代码,

var json={"Div20":["Image20","20.jpg"],"Div19":["Image19","19.jpg"]}; 
for(div in json){ 
    ImageID=json[div][0]; 
    ImageSRC=json[div][1]; 
    $('#'+ImageID) 
      .attr('src',ImageSRC) 
      .click(function(){ 
       alert(this.src);    
      }); 
} 

Demo

0

更换.array[array]在for循环:

for(array in data) 
{ 
    var ImageID = data[array][0]; 
    var ImageSrc = data[array][1]; 
} 
+0

谢谢Mr.Magnus Engdal – MojtabaSh

0

“阵列” 是不是你的JSON对象的属性,它只是你的... in循环的参数。所以你必须把它用作动态值。此外,您错过了使用#来正确定位元素ID。

var data = {"Div20":["Image20","20.jpg"],"Div19":["Image19","19.jpg"]}; 
for(array in data) 
{ 
    var ImageID = "#"+data[array][0]; 
    var ImageSrc = data[array][1]; 
    $(ImageID).on("click",function(){ 
     //some codes 
    }); 
}; 

避免使用$ .each()循环作为上面推荐的人,jQuery循环通常比本地循环慢。

0

试试这个..

$(function() { 

$获得( 'data.php',函数(响应) {

var data = jQuery.parseJSON(response); 
$.each(data,function(k, v){ 
     var ImageID = v[0]; 
     var ImageSrc = v[1]; 
    $('#'+ImageID).click(function(){ 
    //some codes`enter code here` 
    }) 

}) })

相关问题