PHP关联数组解决方案与jQuery AJAX一起使用

时间:2011-06-19 17:25:35

标签: php javascript json jquery

我的javascript如下;

<script type="text/javascript">
$(document).ready( function() {
var i = 1;
$.ajax({
  type: 'POST',
  url: 'ajax.php',
  data: 'id=' + i,
  dataType: 'json',
  cache: false,
  success: function(result) {
    $('.content').each(function(index){
      if((result[index])){
        $(this).css({ 'background-image':'url(images/' + result[index] + '.jpg)' });
      }else{
        $(this).css({ 'background-image':'url()' });
      }
    });
    $('.title').each(function(index){
      if((result[index])){
        $(this).html(result[index]);
      }else{
        $(this).html("&nbsp;");
      }
    });
  },
  });
});
</script>

哪个,借助我的php文件;

<?php
$id = $_POST["id"];
$array = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
$quantity = 6;
$offset = ($id-1)*$quantity;
$array2 = array_slice($array,$offset,$quantity);
echo json_encode($array2);
?>

更改我桌子的背景图片;

<table style="width: 100%; border: solid 1px #666600; min-width: 800px" cellpadding="0" cellspacing="0">
<tr>
<td id="prev">prev</td>
<td class="content" >&nbsp;</td>
<td class="content" >&nbsp;</td>
<td class="content" >&nbsp;</td>
<td class="content" >&nbsp;</td>
<td class="content" >&nbsp;</td>
<td class="content" >&nbsp;</td>
<td id="next">next</td>
</tr>
<tr>
<td>&nbsp;</td>
<td class="title" >&nbsp;</td>
<td class="title" >&nbsp;</td>
<td class="title" >&nbsp;</td>
<td class="title" >&nbsp;</td>
<td class="title" >&nbsp;</td>
<td class="title" >&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>

一切都运作良好。

但我想显示一些与数组中的数字相关的数据,对数组元素说name1name20的一些名称。在我的页面中,具有class="title"的表格单元格中填充了数组元素(此处为图像名称)。但我希望class="title"填充名称1-20,它应该与数组元素一起传递,如关联数组。我认为关联数组将是最好的选择。

我怎样才能使用Javascript和jQuery?

注意: - 不要担心PHP。如果有人建议使用特定格式来回显PHP中的数据,我可以将其解决。我是初学者..

提前致谢...

1 个答案:

答案 0 :(得分:6)

关联数组将成为json_encode

的javascript对象

普通数组如数组(1,2,3)== json_encode ==&gt; [1,2,3]

关联数组,如数组('name'=&gt; 1,'name2'=&gt; 2)== json_encode ==&gt; {name:1,name2:2}

因此结果[index]将不再起作用。

最好的方法是发送一个包含两个数组的对象:

PHP:

array( 'classes' => array('name1','name2') , 'ids' => array(1,2));

在Javascript中,您可以像这样访问它:

result.classes[index]
result.ids[index]