<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="js/jquery.rotate.min.js"></script> <!-- Demo start --> <div class="rotary"> <div class="rotaryArrow" id="rotaryArrow"></div> <div class="list"> <ul id="li"> </ul> </div> <script type="text/javascript"> $.ajax({ type:'POST', url:'test1.php', dataType: 'json', data:['li'], cache:false, error: function(){ alert('出错了!'); return false; }, success:function(json) { } }); </script>
救急!success里面不会写了!php里面输出的li 应该怎么写才会加载到上面的ul里面?
下面是PHP端代码
<?php $li=array( '1' => array('<li>11111123</li>'), '2' => array('<li>123123123</li>'), '3' => array('<li>123123123</li>'), '4' => array('<li>123123123</li>'), '5' => array('<li>123123123</li>'), '6' => array('<li>123123123</li>'), ); echo json_encode($li); ?>
success: function(json){ var list = ''; for(var o in json){ list += json[o]; } $("#li").html(list); }
另外,你的PHP端返回的时候,建议加上header:
header("Content-Type: application/json;");
echo json_encode($li);
再次建议一下,PHP端返回的数据最好是json,而不应该包含<li>这样的HTML标签,否则之后某天前端的样式改成其他的(不是ul, li了),你岂不是还要修改服务器端的返回值?
爱你!好用了!!!!爱死你了!
@上位者的怜悯:
是这样的,上面所说的“键全是字符串”,是指类似“str”=> '', 'name' => '',这样的形式。而对于数字的,即使加上了引号,底层还是会当做数字索引处理的:
(1):
$li = array( '1' => array('<li>11111123</li>'), '2' => array('<li>123123123</li>'), '3' => array('<li>123123123</li>'), ); $li2 = array( 1 => array('<li>11111123</li>'), 2 => array('<li>123123123</li>'), 3 => array('<li>123123123</li>'), ); $json1 = json_encode($li); $json2 = json_encode($li2); var_dump( $json1 === $json2 );
(2)
$arr = array( '1' => 'test', ); $arr[1] = 'new test'; print_r( $arr ); //覆盖了
@ohmygirl: 如此看来我理解错误,答案只是巧合
@上位者的怜悯: 额,其实不是巧合。不管数组是不是字符串索引,返回的json, $.each循环都是正确的。。
为了男神我也是刚刚看了一下php的数组,但是楼主你这是嵌套数组么,前端获取的js对象是不是这样的:
{"1":["<li>fdsaf</li>"],"2":["<li>fdsaf</li>"],"3"...}
因为本人对于php完全不会,以上是刚刚花了2分钟看的,所以大胆做出以下答案:
var result=""; $.each(json,function(k,v){ result+=v[0]; }); $("#li").html(result);
$(function() { $.ajax({ type: 'POST', url: 'test1.php', dataType: 'json', data: ['li'], cache: false, error: function() { alert('出错了!'); return false; }, success: function(json) { if(json.length){for(var i=0;i<json.length:i++){
$("#li").append(json[i]);
}}} }); });