Codeigniter: Retrieving data on button click with Ajax
        Posted  
        
            by 
                OllyTenerife
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by OllyTenerife
        
        
        
        Published on 2014-08-19T21:18:23Z
        Indexed on 
            2014/08/19
            22:20 UTC
        
        
        Read the original article
        Hit count: 243
        
I have a simple webpage which generates a random quote from my database upon refreshing the page. I wish to implement some AJAX and JQuery in order to generate quotes via the button rather than having to refresh the page. I have done some research but I am not sure how to implement this in Codeigniter. My current code is below...
Page controller:
public function index() {
    $this->load->model('quote_model', '', TRUE);
    $data['quotes'] = $this->quote_model->getRandom();
    $this->load->view('home', $data);
}
The view:
<?php include ('layout/header.php'); ?>
<div class="container-fluid">
<div class="row">
    <div class="col-md-4 quote-holder">
        <img src="application/assets/alan1.jpg" alt="..." class="img-circle img-responsive">
        <br>
        <blockquote class="text-center">
            <p><?php echo $quotes[0]['quote']; ?></p>
            <footer class="text-center"><?php echo $quotes[0]['character_name']; ?> in <cite title="Source Title"><?php echo $quotes[0]['series_name']; ?></cite></footer>
        </blockquote>
        <button type="button" class="btn btn-default center-block">Generate quote</button>
    </div>
</div>
<?php include ('layout/footer.php'); ?>
Here is the function in the model I am retrieving the data from:
function getRandom() {
    $query = $this->db->query("
       SELECT * FROM quotes, characters, series
       WHERE quotes.series_id = series.series_id AND quotes.character_id = characters.character_id
       ORDER BY rand() 
       LIMIT 1
    ");
     return $query->result_array();
}
Should I simply be using something like this?
$("button").click(function(){
   $.get( "Page/index", function( data ) {
     //output data to page element...
   }
});
© Stack Overflow or respective owner