2014-02-19 4 views
0

это моя таблица в базе данныхOnChange функции при выборе выпадающего меню будет заполнить текстовое поле

tbl_job_title

ID | Job_title | description  | 
1 | Accountant | Handle Accounts | 
2 | Dev. Support | Support Centre | 

при выборе заголовка задания из таблицы, я использую выпадающее меню и вот мой код.

<select id="job_title" > 
    <option value=""> </option> 
    <?php foreach ($job_title as $row): ?> 
     <option value="<?php echo $row['id']; ?>"><?php echo $row['title']; ?> 
     </option> 
    <?php endforeach?> 
</select> 

и у меня есть текстовое поле, который будет заполнить, если я выбрать JOB_TITLE

<input type="text" id="catch_value"> 

Как заселить текстовое поле, когда я выбираю пример «бухгалтер», значение текстового поля должны быть «Handle Счета ».

ответ

3

Вот короткий & сладкий код, который я сделал только для вас, не стесняйтесь использовать его! Не требуется Ajax ...

КОД -

<select id="job_title" > 
    <option value="" class="job" role=""> </option> 
    <?php foreach ($job_title as $row): ?> 
     <option value="<?php echo $row['id']; ?>" class="job<?php echo $row['id']; ?>" role="<?php echo $row['description']; ?>"><?php echo $row['title']; ?> 
     </option> 
    <?php endforeach?> 
</select> 

Jquery -

$('#job_title').on('change',function(){ 
    var m = this.value; 
    var n = $('.job'+m).attr('role'); 
    $('#catch_value').val(n); 
    return false; 
}); 

например - fiddle

+0

У вас есть образец в jsfiddle? спасибо – Vincent

+1

эй попробуйте эту скрипку - http://jsfiddle.net/TPE9r/4/ –

+0

спасибо за попытку, но мне нужно, чтобы при вводе «бухгалтера» текстовое поле заполнило «Handle Accounts», как в примере выше, i m в базе данных. thansk – Vincent

1
$('#job_title').change(function(){ 
    $('#catch_value').val('Handle Accounts'); 
}); 

см скрипку: fiddle

или вы можете добавить, если statments

$('#job_title').change(function(){ 
    var jt = $('#job_title').val(); 
if(jt == "Something") 
{ 
    $('#catch_value').val('Handle Accounts'); 
} 
if (jt == "SomethingElse") 
{ 
    $('#catch_value').val('somethingelse'); 
} 
}); 
+1

Это просто установит его в «Handle Accounts», независимо от того, какой «

+0

. Значение взято из базы данных. как мне получить ценность? – Vincent

+0

, так что вы хотите, чтобы значение входного текста было таким же, как и выбранное значение параметра? – bart2puck

2
<select id="job_title" onchange="javascript:callajaxvalue(this.value);"> 
    <option value=""> </option> 
    <?php foreach ($job_title as $row): ?> 
     <option value="<?php echo $row['id']; ?>"><?php echo $row['title']; ?> 
     </option> 
    <?php endforeach?> 
</select> 

<script> 
    function callajaxvalue(id) 
    { 
      $.ajax({ 
      type: "POST", 
      url: "some.php", 
      data: { id: id} 
      success: function(data, textStatus){ 
       if(data) 
       { $("#catch_value").val(data);} 
      }, 
      }) 
    } 
</script> 

some.php

$ _POST [ 'ID'];

$ query = "получить данные из таблицы";

выполнить запрос.

echo $ row ['description'];

Для CodeIgniter

function callajaxvalue(id) 
    { 
      $.ajax({ 
      type: "POST", 
      url: "my_controller/update/"+id, 
      data: { id: id} 
      success: function(data, textStatus){ 
       if(data) 
       { $("#catch_value").val(data);} 
      }, 
      }) 
    } 

my_Controller.php

public function update() 
    { 
     $id = $this->input->post('id'); 
     $data['discription'] = call model function for get data form database 

     echo json_encode($data); 
    } 
+0

У вас есть образец этого в jsfiddle? – Vincent

+1

это очень легко реализовать. с какой проблемой вы сталкиваетесь. где путаница в этом коде? –

+0

Я запутался в some.php, я использую codeigniter. извините – Vincent

2

Это правильный ответ:

<select id="job_title" onchange='populate()'> 
    <option value=""> </option> 
    <?php foreach ($job_title as $row): ?> 
    <option value="<?php echo $row['id']; ?>"><?php echo $row['title']; ?> 
    </option> 
<?php endforeach?> 
    </select> 

    <script> 
     function populate(){ 
     var jobttl= document.getElementById('job_title').value(); 
     if(jobttl){ 
      document.getElementById('catch_value').value; 
     } 

     } 
    </script> 
+0

У вас есть образец jsfiddle для этого? – Vincent

Смежные вопросы