Интересно, как получить данные из базы данных с помощью AJAX в CodeIgniter. Не могли бы вы проверить код ниже, чтобы узнать причину проблемы? Ничего не происходит, когда я нажимаю ссылку на мой взгляд.
Вот мое мнение:
<a href="#" class="faq_title"><?php echo $faq_title; ?></a>
Вот мой контроллер:
public function get_faq_data() { $this->load->model("model_faq"); $title = $_POST['title']; $data["results"] = $this->model_faq->did_get_faq_data($title); echo json_encode($data["results"]); }
Вот моя модель:
public function did_get_faq_data($title) { $this->db->select('*'); $this->db->from('faq'); $this->db->where('faq_title', $title); $query = $this->db->get('faq'); if ($query->num_rows() > 0) { return $query->result(); } else { return false; } }
Вот мой файл JavaScript:
$(".faq_title").click(function() { var title = $(this).text(); $.ajax({ url: 'faq/get_faq_data', data: ({ title: title }), dataType: 'json', type: 'post', success: function(data) { response = jQuery.parseJSON(data); console.log(response); } }); });
Попробуй это:
$(function(){ // start of doc ready. $(".faq_title").click(function(e){ e.preventDefault(); // stops the jump when an anchor clicked. var title = $(this).text(); // anchors do have text not values. $.ajax({ url: 'faq/get_faq_data', data: {'title': title}, // change this to send js object type: "post", success: function(data){ //document.write(data); just do not use document.write console.log(data); } }); }); }); // end of doc ready
Проблема, как я вижу, это var title = $(this).val();
поскольку ваш селектор $(".faq_title")
является якорем, а привязки имеют текст не значения. Поэтому я предложил вам использовать .text()
вместо .val()
.