2015-09-05 5 views
3

Я пытаюсь заполнить текстовое поле на основе динамического Dropbox, заполненного из базы данных.Заполнение текстового поля на основе динамического раскрывающегося списка

Мой код, как показано ниже:

index.php

<?php 
    include "../conn.php"; 
?> 
<html> 
    <head> 
    <title>Changing textbox value based on dropdown list using Ajax and PHP</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
    <script> 
    function getXMLHTTP() { 
      var xmlhttp=false; 
      try{ 
       xmlhttp=new XMLHttpRequest(); 
      } 
      catch(e) {  
       try{    
        xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
       catch(e){ 
        try{ 
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
        } 
        catch(e1){ 
         xmlhttp=false; 
        } 
       } 
      } 

      return xmlhttp; 
     } 



    function getCurrencyCode(strURL){  
     var req = getXMLHTTP();  
     if (req){ 
      //function to be called when state is changed 
      req.onreadystatechange = function(){ 
       //when state is completed i.e 4 
       if (req.readyState == 4) {   
        // only if http status is "OK" 
        if (req.status == 200){      
         document.getElementById('cur_code').value=req.responseText;      
        } else { 
         alert("There was a problem while using XMLHTTP:\n" + req.statusText); 
        } 
       }    
      }   
      req.open("GET", strURL, true); 
      req.send(null); 
     }   
    } 
    </script> 
    </head> 

    <body style="font: 12px Verdana, Arial, Helvetica, sans-serif;"> 

    <form style="text-align:center" method="post" action="" name="form1"> 
    <p style="color:#000099 ">When you change the dropdown list, the respective currency code of the country will be displayed in the textbox which is fetched from PHP using Ajax. </p> 
    <p>Department :        <?PHP 
            echo "<select name= 'Department' class='form-control selectpicker' onChange='getCurrencyCode('find_ccode.php?country='+this.value)' Required>"; 
            echo '<option value="">'.'--Please Select Department--'.'</option>'; 
            $sql = "SELECT ID,Name FROM Departments"; 
            $query = sqlsrv_query($conn,$sql); 
            $query_display = sqlsrv_query($conn,$sql); 
            while($row=sqlsrv_fetch_array($query_display,SQLSRV_FETCH_ASSOC)){ 
            echo "<option value='". $row['Name']."'>".$row['Name']. '</option>'; 
            } 
            echo "</select>"; 
           ?> 
    ID : <input type="text" name="cur_code" id="cur_code" ></p> 
    </form> 
    </body> 
</html> 

find_ccode.php

 <?php 

    $country=$_REQUEST['country']; 
    include '../conn.php'; 

    $sql = "SELECT ID,Name FROM Departments Name='$country'"; 
      $fetched=sqlsrv_query($conn,$sql) ; 
     if($fetched === false) { die(print_r(sqlsrv_errors(), true));} 
      while($sno=sqlsrv_fetch_array($fetched,SQLSRV_FETCH_ASSOC)) 
      { 
       echo $formno=$sno['ID']; 
      } 
    } 

    ?> 

То, что я

enter image description here

Что я хочу:

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

enter image description here

Но это не похоже на работу. Где, по-вашему, я поступил неправильно? Цените любую помощь :)

+0

Каждый '

+0

Вам нужно использовать JavaScript, чтобы установить значение #cur_code при выборе изменения. И я думаю, что плохая идея сделать запрос на получение каждого идентификатора, это всего лишь номер, сохранить его в идентификаторе данных параметров. Значение –

ответ

1

FIDDLE

$('#sel').change(function() { 
    $('#qwe1').val($('#sel option:selected').val()); 

}) 

для динамического значения

FIDDLE

Используйте .change, чтобы выбрать и получить его значение, а затем поместить его в поле ввода.

UPDATE

FIDDLE

var data = var data = [{ 
    "id": "342-432-423-000","name": "name1" 
}, { 
    "id": "342-432-423-001","name": "name2" 
}, { 
    "id": "342-432-423-002","name": "name3" 
}, { 
    "id": "342-432-423-003","name": "name4" 
}, { 
    "id": "342-432-423-004","name": "name5" 
}, { 
    "id": "342-432-423-005","name": "name6" 
}, { 
    "id": "342-432-423-006","name": "name7" 
}, { 
    "id": "342-432-423-007","name": "name8" 
}] 


for (var i = 0; i < data.length; i++) { 
     $('#sel').append('<option id=' + data[i].id + ' data-id="' + data[i].id + '">' + data[i].name + '</option>'); 
    } 

    $('#sel').change(function() { 
     $('#qwe1').val($('#sel option:selected').data('id')); 

    }) 

Предполагая, что у меня есть данные из PHP я установил department name, как option name и я установил department id, как data-id. Затем из выбранного события изменения я получаю значение data-id и задаю его как значение ввода.

+0

не будет работать, потому что значение - это имя в соответствии с кодом OP.Что они хотят установить в следующем поле ID. –

+0

его можно заполнить выбором, он может установить идентификационный номер, как значение опции, там все будет отлично падать – guradio

+0

Обновлено второй скрипкой, пожалуйста, сделайте снимок @RamtinGh – guradio

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