讨论为什么这会返回PHP错误:未定义的偏移量:1
public function index($hash)
{
//$hash = 44253_13456789
list($part1,$part2) = explode('_', $hash);
$id = $part1;
$tpl_data = array('id' => $id );
$this->load->view('main/index', $tpl_data);
}
错误发生在list()= explode();感谢您对此有任何见解。
以下是错误的网址。 http://www.onlinealbumproofing.com/beta/ipad/index/44253_1368207168
更新:
这是控制器代码。
echo $hash;
list($part1,$part2) = explode('_', $hash);
$id = $part1;
$tpl_data = array('id' => $id );
$this->load->view('ipad/index', $tpl_data);
再次更新.... 好的,所以看起来像是在ajax请求上发生了错误
var id = $('body').attr('id');
$.ajax({
url: 'ipad/loadImages',
type: 'POST',
dataType: 'json',
data: {id: id},
success: function(json, textStatus, xhr) {
for (var i = 0; i < json.images.length; i++) {
//do something
}
}, error: function(json, textStatus) {
console.log(textStatus);
}
});
答案 0 :(得分:2)
你的问题是爆炸()似乎只返回一个值。
list()正在尝试:
$tmp = explode("_", $hash);
$part1 = $tmp[0];
$part2 = $tmp[1]; //Here is your undefined offset.
仔细检查你的$ hash值。
答案 1 :(得分:0)
list($part1,$part2)
要求数组至少包含两个元素。
如果$hash
中没有_
,则explode('_', $hash)
将不会返回包含两个元素的数组。
答案 2 :(得分:0)
这种情况正在发生,因为您没有从爆炸功能返回2
个令牌。这意味着您需要检查输入以确保您获得所需的2个令牌。