2016-04-15 4 views
0

Ich habe versucht, mit Jquery und einem Dropdown-Feld auszuarbeiten, um Eingabeformulare ohne Erfolg zu füllen, und ich versuche, einen Weg zu finden bis ich es schließlich herausfinden kann. Was ich gerne wissen würde, wenn es möglich ist, eine Dropdown-Liste mit sql aufzufüllen, dann einmal ausgewählt, diesen Wert nehmen und einen SQL-Befehl ausführen, um den Rest der Datenzeile und $ _GET in Eingabefelder zu bekommen.Kann ich eine Ajax-Taste verwenden, um einen Dropdown-Wert zu nehmen und ein Formular

ich habe Proben überprüft und aber die meisten Proben geben Tabellendaten aus und können nichts finden, was zu einem Eingabefeld führt, damit ich das Formular in eine Datenbank verarbeiten kann.

Ich bin nur auf der Suche nach einer Idee oder Richtung, wo ich für eine solche Aufgabe suchen sollte, würde jede Hilfe sehr geschätzt werden.

+0

Mögliche Duplikat [Dynamisch in Form Werten füllen mit jQuery] (http://stackoverflow.com/questions/558445/dynamical-fill-in-form-values-with-jquery) – dave

+0

Sie müssen Codebeispiele bereitstellen, damit wir sehen können, was Sie bereits versucht @Glenn Zealous – Black

+0

Welches PHP Framework verwenden Sie für diesen Zweck? oder verwenden Sie nur eine .php-Datei? – hmd

Antwort

0

Nun, durch JQuery Library verwenden und Ihre eigene PHP-Funktionalität zu schreiben können Sie einfach das tun.

Sie benötigen und eine HTML-Select-Box:

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

A JQuery Ajax-Anfrage für Ihre Daten für die Select-Box bekommen, die ausgelöst wird, wenn Sie Ihr Web-Dokument bereit bekommen und ein OnChange-Ereignis für das Wählen box mit einer-anderen Ajax-Anfrage mit POST-Typ:

<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> 

Ihre Php-Datei erhalten, dass der AJAX-Request:

// 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; 

Ihre zweite Php-Datei an, dass die POST TYPE AJAX Anforderung erhalten:

// 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; 

Ich hoffe, jetzt können Sie eine Vorstellung bekommen :)

+0

Dies ist fast perfekt und es ist wirklich sehr geschätzt, ich kann sehen, wie eine solche Funktion jetzt ausgeführt werden könnte. aber ich habe eine Frage, wie ich die Funktion arbeiten kann, aber die SQL ist nicht die Dropdown-Liste aufgefüllt, während stattdessen eine Zeile der Datei Echo ist. Dann, wenn diese Öffnung ausgewählt ist, wird der POST-Code an den Posteingang gesendet. der Kern davon funktioniert, aber ich muss noch mehr zwicken es vor dem Hinzufügen zu dem Skript. –

+0

@GlennZealous froh zu wissen, dass es dir geholfen hat :) und die Frage, die du mir gerade gestellt hast, kann ich nicht bekommen. Ich denke, du solltest eine andere Frage mit deinem aktuellen Code posten. So, ich oder jemand anderes wird in der Lage sein, Ihr Problem zu beheben und Ihnen zu helfen :) – hmd

+0

Ich habe das getan und es ist irgendwie 1 Schritt vorwärts 2 Schritte zurück. Ich kann sehen, dass dieser Code funktioniert, aber ich muss nur ein paar Mal ins Gesicht mit einem Stuhl und einem Oktopus um diesen Stuhl gewickelt schlagen –

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*/  
Verwandte Themen