私はCodeigniterでAJAXを使用する方法のまともな完全な実例を今1週間探していました(私はAJAX初心者です)。私が見た投稿/ツチは古いです-すべてのプログラミング言語が進んでいます。
ページを更新せずに、ページに何か(変数、データベースクエリ結果、HTML形式の文字列など)を返す入力フォームが必要です。この簡単な例は、ユーザー入力をデータベースに挿入する入力フィールドのあるページです。入力が送信されたら、別のビューをロードしたいと思います。これを行う方法を理解できれば、必要なことを何でもできるように適応させることができます(そして、うまくいけば、他の人にも役立つでしょう!)
私はこれを私の「テスト」コントローラーに持っています:
function add(){
$name = $this->input->post('name');
if( $name ) {
$this->test_model->put( $name );
}
}
function ajax() {
$this->view_data["page_title"] = "Ajax Test";
$this->view_data["page_heading"] = "Ajax Test";
$data['names'] = $this->test_model->get(); //gets a list of names
if ( $this->input->is_ajax_request() ) {
$this->load->view('test/names_list', $data);
} else {
$this->load->view('test/default', $data);
}
}
これが「ajax」という名前の私のビューです(したがって、URL www.mysite.com/test/ajaxからこれにアクセスします)
<script type="text/javascript">
jQuery( document ).ready( function() {
jQuery('#submit').click( function( e ) {
e.preventDefault();
var msg = jQuery('#name').val();
jQuery.post("
<?php echo base_url(); ?>
test/add", {name: msg}, function( r ) {
console.log(r);
});
});
});
</script>
<?php echo form_open("test/add"); ?>
<input type="text" name="name" id="name">
<input type="submit" value="submit" name="submit" id="submit">
<?php echo form_close(); ?>
現在行われているのは、入力を入力し、データベースを更新して、ビュー「test / default」を表示することだけです(ページは更新されませんが、必要に応じて「test/names_list」は表示されません。よろしくお願いします。助けてくれて、そして私の惨めさから私を解放してくれて!