私はCodeigniterの初心者です。Ajax を使用するのはこれが初めてです。ナビゲーションリンクをクリックしたときに「コンテンツ」の部分だけを変更したい。サイトで ajax を使用する方法を学ぶ必要があります。
MY_Controller.php :
class MY_Controller extends CI_Controller {
protected $data = array();
function __construct() {
parent::__construct();
}
function render_page($view) {
if( ! $this->input->is_ajax_request() )
{
//do this to don't repeat in all controllers...
$this->load->view('templates/header', $this->data);
//menu_data must contain the structure of the menu...
//you can populate it from database or helper
}
$this->load->view($view, $this->data);
if( ! $this->input->is_ajax_request() )
{
$this->load->view('templates/menu');
$this->load->view('templates/footer', $this->data);
}
}
マイホーム/コントローラ ビュー機能について:
public function view($page = 'home')
{
$this->load->helper('text');
$this->data['records']= $this->services_model->getAll();
if ( ! file_exists('application/views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
$data['title'] = ucfirst($page); // Capitalize the first letter
$this->render_page('pages/'.$page,$data);
}
MY_Controller.php で ajax を有効にできると思います。この後どうする?ビューで投稿を有効にするにはどうすればよいですか?
編集:jqueryとajaxについてさらに調査しました。これは html のナビゲーション メニュー部分です。
<div id="sidebar-content">
<ul id="menu">
<li class="current"><a href="<?php echo site_url('home'); ?>">ANASAYFA</a></li>
<li><a href="<?php echo site_url('about'); ?>">HAKKIMIZDA</a></li>
......
head セクションに ajax.js ファイルを次のように記述しました。
//ナビゲーション
$("#sidebar-content ul li a").click( function(){
$.ajax({
url: "<?php echo site_url('about'); ?>",
type: 'POST';
data: JSON,
success: function(msg) {
$('#content').body(msg);
}
});
});
return false;
});
私のコードを改善できますか? もう1つの問題は、ヘッド部分でajaxを使用する場合、さまざまなページをURLとして投稿するにはどうすればよいですか?