Random Photos
This page demonstrates how to select random photos from database and display them with xajax. These photos were from my photo gallery - Minter Gardens.
![]() | ![]() | ![]() | ![]() |
Model: photo_model.php
<?php
class photo_model extends Model
{
function photo_model()
{
parent::Model();
}
function get_random_photos($limit)
{
$query = $this->db->query('select * from photo order by rand() limit ' . $limit);
return ($query);
}
}
?>
Controller: randomphotos.php
<?php
class randomphotos extends Controller
{
var $NUM_PHOTOS = 4;
function randomphotos()
{
parent::Controller();
$this->load->model('photo_model', 'photo_model', true);
}
function index()
{
// XAJAX
$this->load->library('xajax');
$this->xajax->registerFunction(array("next_random_photos", &$this, "next_random_photos"));
$this->xajax->processRequests();
$data['xajax_js'] = $this->xajax->getJavascript(null, '/js/xajax.js');
// load views
$data['head_title'] = WEBSITE_NAME . " - Examples: Random Photos";
$data['highlighted_controller'] = highlight_file("randomphotos.php", TRUE);
// get random photos
$data['div_random_photos'] = $this->_get_random_photos();
// load example MVC
$example = new example('randomphotos', true);
$data['highlighted_model'] = $example->model;
$data['highlighted_view'] = $example->view;
$data['subheader'] = $this->load->view('examples_subheader', $data, true);
$data['sidebar'] = $this->load->view('examples_sidebar', $data, true);
$data['body_content'] = $this->load->view('randomphotos_tpl', $data, true);
$this->load->view('site_layout', $data);
}
function next_random_photos()
{
$objResponse = new xajaxResponse();
$result = $this->_get_random_photos();
// slower motion
usleep(300000);
$objResponse->addAssign("div_random_photos", "innerHTML", $result);
return $objResponse;
}
function _get_random_photos()
{
$query = $this->photo_model->get_random_photos($this->NUM_PHOTOS);
$output = "<table border='0' cellpadding='3' cellspacing='0'><tr>";
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$output .= "<td><img border='0' src='" . base_url() . "photos/" .$row->filename . "'></td>";
}
}
$output .= "</tr></table>";
return ($output);
}
}
?>
View: randomphotos_tpl.php
<script type="text/javascript">
<!--
xajax.loadingFunction = function(){xajax.$('loading_message').style.display='block';};
xajax.doneLoadingFunction = function(){xajax.$('loading_message').style.display='none';};
// -->
</script>
<div id="loading_message" class="loadingMessage">Loading ...</div>
<h1 id="introduction">Random Photos</h1>
<p>
This page demonstrates how to select random photos from database and display them with <?=XAJAX_LINK_POPUP?>. These photos were from my photo gallery - <a href="http://www.pbase.com/alextsung/minter_gardens&page=all" target="_new">Minter Gardens</a>.
</p>
<div id="div_random_photos"><?=$div_random_photos?></div>
<br/>
<input type="button" id="btn_next_photos" name="btn_next_photos" value="Next <?=$this->NUM_PHOTOS?> Random Photos" onclick="xajax_next_random_photos()"/>
<h1 id="introduction">Model: photo_model.php</h1>
<p>
<?=$highlighted_model?>
</p>
<h1 id="introduction">Controller: randomphotos.php</h1>
<p>
<?=$highlighted_controller?>
</p>
<h1 id="introduction">View: randomphotos_tpl.php</h1>
<p>
<?=$highlighted_view?>
</p>



