Php jQuery:如何解析多维数组?
我不确定数组是否太深,但除了键和取消定义之外,我似乎什么也得不到。救命啊 我正在使用Codeigniter进行开发。下面是PHP,然后是jQuery:Php jQuery:如何解析多维数组?,php,jquery,ajax,Php,Jquery,Ajax,我不确定数组是否太深,但除了键和取消定义之外,我似乎什么也得不到。救命啊 我正在使用Codeigniter进行开发。下面是PHP,然后是jQuery: $term = $this->input->post('search_term'); $this->db->like('book_title', $term); $search_query = $this->db->get('books'); $return = array(); $i
$term = $this->input->post('search_term');
$this->db->like('book_title', $term);
$search_query = $this->db->get('books');
$return = array();
$i = 0;
if ($search_query->num_rows() > 1) {
foreach($search_query->result() as $s) {
$return['books']['book_id'] = $s->book_id;
$return['books']['book_title'] = $s->book_title;
$return['books']['book_price'] = $s->book_price;
$i++;
}
} elseif ($search_query->num_rows() == 1) {
echo 1;
$i = 0;
$return['book_id'] = $search_query->row('book_id');
$return['book_title'] = $search_query->row('book_title');
$return['book_price'] = $search_query->row('book_price');
} elseif ($search_query->num_rows() == 0) {
echo 0;
}
echo json_encode($return);
Javascript
$("#search").change(function() {
var searchTerm = $(this).val();
$.post("/contentcreator/search_by_term", { search_term: searchTerm }, function(data) {
$("#book_scroller").empty();
var lengthHolder = data.books;
for (var i = 0; i > data.books.length; i++) {
var row = '<li id="book_item_' + l + '">' + data.books['book_title'] +'</li>';
$("#book_scroller").append(row);
};
i++;
}, "json");
});
$("#search").change(function() {
var searchTerm = $(this).val();
$.post("/contentcreator/search_by_term", { search_term: searchTerm }, function(data) {
$("#book_scroller").empty();
for (var i = 0; i > data.length; i++) {
var book = data[i];
var row = '<li id="book_item_' + book.id + '">' + book.book_title +'</li>';
$("#book_scroller").append(row);
};
}, "json");
});
谢谢 我的一个建议是,无论返回多少本书,返回的json都应该采用相同的格式。设置方式如果只有一个匹配项,则返回一个包含id、title、price的数组,但如果有多个匹配项,则返回一个包含单个项目的数组,即id、title、price的数组。在我看来,您总是希望它返回一个书籍数组——每个书籍都是一个包含id、标题和价格的对象。注意,我还修复了javascript的一些小问题。免责声明:无论如何我都不是php程序员——我的语法肯定是错误的 试试这个:
$i = 0;
foreach($search_query->result() as $s) {
$return[$i]['book_id'] = $s->book_id;
$return[$i]['book_title'] = $s->book_title;
$return[$i]['book_price'] = $s->book_price;
$i++;
}
Javascript
$("#search").change(function() {
var searchTerm = $(this).val();
$.post("/contentcreator/search_by_term", { search_term: searchTerm }, function(data) {
$("#book_scroller").empty();
var lengthHolder = data.books;
for (var i = 0; i > data.books.length; i++) {
var row = '<li id="book_item_' + l + '">' + data.books['book_title'] +'</li>';
$("#book_scroller").append(row);
};
i++;
}, "json");
});
$("#search").change(function() {
var searchTerm = $(this).val();
$.post("/contentcreator/search_by_term", { search_term: searchTerm }, function(data) {
$("#book_scroller").empty();
for (var i = 0; i > data.length; i++) {
var book = data[i];
var row = '<li id="book_item_' + book.id + '">' + book.book_title +'</li>';
$("#book_scroller").append(row);
};
}, "json");
});
你能重新格式化一下吗?几乎无法阅读。格式细节:简短版本:用四个空格缩进所有代码。另外,查看PHP生成并发送到浏览器的实际JSON字符串是什么会很有用。