Skip to main content

Multi Language Web Application With Ajax - PHP - MySQL

 


Postingan kali ini saya akan share cara sederhana untuk membuat fitur multi-language dengan menggunakan Ajax-PHP-MySQL, Ok Pertama kita buat sebuah table mapping element-element di setiap page, desain tablenya seperti berikut :



pada table t_element diatas akan digunakan untuk menyimpan element-element yang ada di setiap page/halaman website kita, untuk contoh datanya seperti berikut :



Struktur Project Web Application-nya seperti berikut :




Selanjutnya pada project web-nya buat layout seperti berikut :

path : app/views/home/index.php

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title><?= $data['title']; ?></title>
    <link href="<?= BASEURL; ?>/plugins/bootstrap/css/bootstrap.css" rel="stylesheet">
</head>

<body class="">
    <div class="col-sm-4 col-sm-offset-4" style="margin-top:50px;">
        <div class="form-group">
            <label for="nama" id="lblnama">Nama</label>
            <input type="text" name="nama" class="form-control">
        </div>
        <div class="form-group">
            <label for="alamat" id="lblalamat">Alamat</label>
            <input type="text" name="alamat" class="form-control">
        </div>
        <div class="form-group">
            <label for="umur" id="lblumur">Umur</label>
            <input type="number" name="umur" class="form-control">
        </div>

        <div>
            <button type="button" id="btn-id">Indonesia</button>
            <button type="button" id="btn-en">English</button>
            <button type="button" id="btn-ch">Mandarin</button>
            <button type="button" id="btn-ab">Arabic</button>
        </div>
    </div>

    <script src="<?= BASEURL; ?>/plugins/jquery/jquery.min.js"></script>
    <script src="<?= BASEURL; ?>/plugins/bootstrap/js/bootstrap.js"></script>

    <script>
        var base_url = window.location.origin+'/multi-lang';
        $(function(){

            $('#btn-id').on('click'function(){
                changelanguage('home','id');
            });

            $('#btn-en').on('click'function(){
                changelanguage('home','en');
            });

            $('#btn-ch').on('click'function(){
                changelanguage('home','ch');
            });

            $('#btn-ab').on('click'function(){
                changelanguage('home','ab');
            });

            changelanguage('home''id')
            function changelanguage(pagelang){
                $.ajax({
                    url: base_url+'/home/changelanguage/'+page+'/'+lang,
                    type: 'GET',
                    dataType: 'json',
                    cache:false,
                    success: function(result){
                        console.log(result)
                        var component = '';
                        for(var i = 0i < result.lengthi++){
                            component = result[i].elementId;
                            $('#'+component).html(result[i].value);
                        }
                    }
                });
            }
        })
    </script>
</body>
</html>

 


Lalu pada controller Home.php :

<?php

class Home extends Controller {

    public function index()
    {
        $data['title'] = 'Ajax | PHP | MySQL - Multi Language';
        $this->view('home/index'$data);
    }

    public function changelanguage($page, $lang){
        $data = $this->model('Home_model')->changelanguage($page$lang);
        echo json_encode($data);
    }
    
}


Lalu di model Home_model.php

<?php

class Home_model{

    private $db;
    private $table = '';

    public function __construct()
    {
        $this->db = new Database;
    }

    public function changelanguage($page, $lang){
        $this->db->query("SELECT * FROM t_element WHERE page = '$pageand language = '$lang'");
        return $this->db->resultSet();
    }
}


Config.php

<?php

define('BASEURL''http://localhost:8181/multi-lang');

define('DB_HOST''localhost');
define('DB_USER''root');
define('DB_PASS''');
define('DB_NAME''latihan');

pada file config.php ini untuk BASEURL bisa di sesuaikan dengan settingan masing2, karena saya menggunakan port 8181 sehingga BASEURL nya seperti itu.


untuk demonya bisa dilihat DISINI

Full source code bisa di download DISINI

Sekian sharing kali ini semoga bermanfaat Terimakasih.

Comments

Popular posts from this blog

PHP MySql CRUD Dengan Konsep MVC

Pada postingan kali ini saya akan sharing cara membuat CRUD dengan php menggunakan konsep MVC, ok langsung saja buka code editor (saya menggunakan sublime text) dan buat folder baru dengan nama phpmvc didalam folder htdocs kalian dan tambah folder seperti berikut :  Setelah itu kita siapkan database di mysql, buat database dengan nama phpmvc dan tablenya seperti gambar berikut : tambahkan file config.php didalam folder app/config : <?php define('BASEURL', 'http://localhost:8181/phpmvc/public'); define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'phpmvc'); kemudian tambahkan 3 file controller didalam folder app/controllers, yaitu Home, About, dan Mahasiswa : Home.php <?php class Home extends Controller { public function index() { $data['nama'] = $this->model('User_model')->getUser()...

Cara Sederhana Multi Insert Data Dengan PHP - MySQL

Pada postingan kali ini saya akan share cara melakukan insert lebih dari satu data dengan menggunaka PHP- Jquery dan MySQL. Pertama buat database di MySQL dan table, disini saya membuat database dengan nama db_latihan dan table dengan nama t_barang dengan struktur table seperti berikut : Setelah membuat database dan table selanjutnya membuat project PHP, project PHP nya saya buat dengan nama multi-insert, lalu didalam folder ini saya membuat dua file yaitu index.php dan insert.php . Source code index.php seperti berikut : <! doctype   html > < html   lang = "en" >    < head >      <!-- Required meta tags -->      < meta   charset = "utf-8" >      < meta   name = "viewport"   content = "width=device-width, initial-scale=1" >      <!-- Bootstrap CSS -->      < link ...

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer , Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa. untuk data-data yang dibutuhkan antara lain : 1. data kategori asset dalam menu ini kita bisa meng-input jenis2 kategory asset : tambah kategori asset : 2. data department 3. data karyawan 4. data department per karyawan 5. data asset location  6. data satuan asset dan untuk transaksi yang ada dalam aplikasi ini adalah,  1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut: setelah klik tombol save akan muncul seperti dibawah : untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih...