2016-04-15 2 views
0

Я пытался работать с помощью JQuery и выпадающего списка, чтобы заполнить формы ввода без каких-либо успехов, и я пытаюсь найти способ обойти это пока я не смогу в конечном итоге понять это. То, что я хотел бы знать, если можно заполнить выпадающий список с помощью sql, то после его выбора возьмите это значение и запустите команду sql, чтобы получить оставшуюся часть данных и $ _GET в поля ввода.Могу ли я использовать кнопку ajax, чтобы принять значение drop down и заполнить форму

Я просматривал образцы, но большинство образцов выводит данные таблицы и не может найти ничего, что будет тянуть в поле ввода, поэтому я могу обработать форму в базе данных.

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

+0

Возможный дубликат [Динамически заполнения значений формы с jQuery] (http://stackoverflow.com/questions/558445/dynamically-fill-in-form-values-with-jquery) – dave

+0

Вы должны предоставить примеры кода, чтобы мы могли видеть, что вы уже пробовали. @Glenn Zealous – Black

+0

Какую структуру PHP вы используете для этой цели? или используя только файл .php? – hmd

ответ

0

Ну, с помощью JQuery Library и писать собственные функции PHP вы можете легко сделать это.

Вам нужно и HTML Выберите окно:

<select id="myselectbox"> 
    <option>Select</option> 
</select> 
<input type="text" id="myinputbox"> 

запрос на JQuery Ajax для получения данных для Select Box, которые срабатывают, когда ваш веб-документ будет приготовиться и событие OnChange для Select Коробка с-другой запрос Ajax с типом POST:

<script type="text/javascript"> 
$(document).ready(function() { 

    $.get("myfunctions/get_records_for_select.php", function(data) { 
    //Look we will change the HTML content for our select-box on success 
    $("#myselectbox").html(data); 
    }); 

    $("#myselectbox").change(function() { 

    $.post("myfunctions/get_records_by_id.php", { selectedId: $(this).val() }) 
    .done(function(data) { 
     $("#myinputbox").val(data); 
    }); 

}); 
}); 
</script> 

Ваш файл .PHP в том, что получит запрос AJAX:

// your get_records_for_select.php file 

$yourSql = "select ..."; 
$results = run_sql($yourSql); 
$html = "<option>Select</option>"; 
foreach($results as $record){ 
    $html .= "<option value='".$record['id']."'>".$record['title']."</option>"; 
} 

echo $html;exit; 

Ваш второй .PHP файл, который будет получать запрос POST TYPE AJAX:

// your get_records_by_id.php file 
$post_data $_POST['selectedId']; 
$yourSql = "select ... WHERE id=".$post_data; 
$results = run_sql($yourSql); 
$row = $results->row(); 
echo $row['yourvalue'];exit; 

Я надеюсь, что теперь вы можете получить некоторое представление :)

+0

Это почти близко к совершенству, и это очень ценится, я вижу, как можно выполнить такую ​​функцию. но у меня есть вопрос, так как я могу видеть, что функция работает, но sql не заполняется выпадающим списком, а вместо этого отображает строку файла. Затем, когда этот open выбран, он отправляет код POST в папку «Входящие». Ядро его работает, но мне все еще нужно его настроить, прежде чем добавлять в скрипт. –

+0

@GlennZealous рад узнать, что это вам помогло :) и вопрос, который вы только что задали мне, я не могу его получить. Я думаю, вам следует отправить другой вопрос с вашим текущим кодом. Таким образом, я или кто-то другой смогут исправить вашу проблему и помочь вам :) – hmd

+0

Я сделал это, и это 1 шаг вперед 2 шага назад. я вижу, что этот код действительно работает, но мне просто нужно немного ударить его по спине стулом и осьминога, обернутого вокруг этого стула. –

0

test.php

 <? 


     if(isset($_GET['name'])) { 
     /*Some queries if need*/ 
     echo '{"name":"yiu send name ['.$_GET['name'].'] and may be some other data'.'"}'; 
     } 
     else { 

     $bd_host='localhost'; 
     $bd_user='root'; 
     $bd_password=''; 
     $bd_base='db_name'; 

     /*connect to db*/ 
     $con=mysql_connect($bd_host, $bd_user, $bd_password); 

     /*control connection*/ 
     if(!con) { 
     echo 'Error.'; 
     exit; 
     } 

     /*select databese name*/ 
     mysql_select_db($bd_base, $con); 

     /*set encode to utf-8*/ 
     mysql_query('SET NAMES utf8'); 



     $sql="Select name from users limit 10" 
     $res=mysql_query($sql); 
     ?> 
     <head> 
     <style> 
     div{background-color:red;width:150px;color:white;} 
     ul{display:none;position:absolute;width:150px;margin:0;padding:0;background-color:yellow;color:black;} 
     div:hover ul{display:block;} 
     .filled{background-color:blue;} 
     </style> 
     </head> 
     <div>button<ul> 
     <? 
     While($row=mysql_fetch_assoc($res)) { ?> 
     <li onclick="ajax('<? echo $row['name']; ?>');return false;"><? echo $row['name']; ?></li> 
     <? 
     } 
     ?> 
     </ul></div> 
     <input type="text" value="none" id="id1"> 
     <? 
     } 
     ?> 

     <script>   
     function ajax(name) { 
     var url='/test.php?name='+name; 

     if (window.XMLHttpRequest) { 
        xmlhttp = new XMLHttpRequest(); 
       } else if (window.ActiveXObject) { 
        xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
       } 
        xmlhttp.open('GET', url, true); 

       xmlhttp.onreadystatechange = function() { 
        if (xmlhttp.readyState == 4) { 
         myfunction(xmlhttp.responseText); 
        } 
       } 

        xmlhttp.send(null); 


       function myfunction(response) { 
     var= arr; 
     arr = JSON.parse(response); 
     document.getElementById('id1').value=arr.name; 
     document.getElementById('id1').className='filled'; 
     alert ('The input was filled with '+arr.name); 
     } 

     } 
     </script>  

     /*END of test.php*/  
Смежные вопросы