使用codeigniter选择显示选项

时间:2017-12-09 10:26:27

标签: javascript php html codeigniter

我想要求在页面注册中使用2个tabel选择我的代码选项

table prodi
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| id_prodi    | varchar(3)  | NO   | PRI | NULL    |       |
| nama_prodi  | varchar(30) | NO   |     | NULL    |       |
| id_fakultas | varchar(3)  | NO   | MUL | NULL    |       |
| id          | int(2)      | NO   | MUL | NULL    |       |
+-------------+-------------+------+-----+---------+-------+

table jurusan
+---------------+-------------+------+-----+---------+-------+
| Field         | Type        | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| id_fakultas   | varchar(3)  | NO   | PRI | NULL    |       |
| nama_fakultas | varchar(40) | NO   |     | NULL    |       |
+---------------+-------------+------+-----+---------+-------+

这里的观点:

 <label for="fakultas">Fakultas : </label>
  <select id="fakultas" name="fakultas_user"  onChange="fakultas">

    <?php 
      foreach ($qfakultas as $fakultas) {
        echo "<option value=".$fakultas->kd_fakultas.">".$fakultas->nama_fakultas."</option>";    
      }
    ?>    
  </select>

  <hr>

  <label for="jurusan">Jurusan  : </label>
  <select id="jurusan" name="jurusan_user" onChange="jurusan">
    <?php 
      foreach ($qprodi as $prodi) {
        echo "<option value=".$prodi->kd_prodi.">".$prodi->nama_prodi."</option>";    
      }
    ?>  
  </select>

但我会根据'id_fakultas'显示'nama_prodi'

register with option value

当我点击'nama_fakultas'然后根据'id_fakultas'显示'nama_prodi'时如何显示?

谢谢

1 个答案:

答案 0 :(得分:1)

以下是我可以提供帮助的Ajax代码,仅基于nama_prodi获取id_falkutas

  

您可以将此代码用于您的项目,您需要做些什么。
不只是复制代码。只需几步(ID Lang:Jangan dicopy mentah2,hanya beberapa langkah saja untuk edit)。

     
      
  1. YOUR_URL_HERE更改为base_url()或为其创建var
  2.   
  3. nama_controller更改为CI_Controller
  4. 中的控制器名称   
  5. nama_fungsi更改为您的函数以从模型(数据库)获取数据。
    示例:ambil_data_jurusan
  6.   
  7. 从您的视图中移除foreach - echo <option>onchange
  8.   
  9. 将脚本添加到视图文件中或创建新的.js文件。
  10.   
  11. 如果此代码对您有帮助,请帮我标记为正确答案。 (tolong dibantu gan)
  12.   

请参阅代码示例:

<script>
$("#falkutas").on('change', function() {
   $.ajax({
        type:"POST",
        url:'YOUR_URL_HERE/nama_controller/nama_fungsi',
        data:{"falkutas_user":falkutas_user,"csrf_token":$("input[name=csrf_token]").val()},
        dataType:'json',
        success: function(result) {
            for(var i=0; i<result.length; i++) {
                res += '<option value="'+result[i]['id_prodi']+'">'+result[i]['nama_prodi']+'</option>';
            }
            $(document).ready(function() {
                 $("#prodi").html(res);
            });
        },
        error: function(result) {
            $(document).ready(function() {
                $("#prodi").html(''); //empty select value
            });
        }
    });
}
</script>

然后,在您的功能代码中:

// Inside function ambil_data_jurusan(), harusnya sudah jalan kalau gini
$return = $this->model->get_jurusan($this->input->post('falkutas',TRUE));
if(count($return)>0) {
    echo json_encode($return);
}

在您看来,只需像这样选择空。

<select id="jurusan" name="jurusan_user">

</select>